<feed xmlns='http://www.w3.org/2005/Atom'>
<title>django.git/tests/requests_tests, branch main</title>
<subtitle>django
</subtitle>
<id>http://cgit.adnoto.dev/django.git/atom?h=main</id>
<link rel='self' href='http://cgit.adnoto.dev/django.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/'/>
<updated>2026-04-22T18:25:08Z</updated>
<entry>
<title>Fixed #36991 -- Raised BadRequest for invalid encodings in Content-Type headers.</title>
<updated>2026-04-22T18:25:08Z</updated>
<author>
<name>Dinesh</name>
<email>dineshthumma15@gmail.com</email>
</author>
<published>2026-03-21T17:21:11Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=dc467fdc3b5744cec71fab876c23a14013e2510b'/>
<id>urn:sha1:dc467fdc3b5744cec71fab876c23a14013e2510b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed CVE-2026-33033 -- Mitigated potential DoS in MultiPartParser.</title>
<updated>2026-04-07T11:12:23Z</updated>
<author>
<name>Natalia</name>
<email>124304+nessita@users.noreply.github.com</email>
</author>
<published>2026-03-05T17:41:44Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=7e9885f99cee771b51692fadc5592bdbf19641aa'/>
<id>urn:sha1:7e9885f99cee771b51692fadc5592bdbf19641aa</id>
<content type='text'>
When a multipart file part used `Content-Transfer-Encoding: base64` and
the non-whitespace base64 bytes did not align to a multiple of 4 within
a chunk, the parser entered a loop calling `field_stream.read(1-3)` once
per whitespace byte. Each such call fetched the entire internal buffer,
sliced off 1-3 bytes, and pushed the remainder back via unget(), doing
an O(n) memory copy per call. A 2.5 MB payload of mostly whitespace
produced CPU amplification relative to a normal upload of the same size.

The alignment loop now reads `self._chunk_size` bytes at a time, and
accumulates stripped parts in a list joined once at the end.

Thanks to Seokchan Yoon for the report and the fixing patch.
</content>
</entry>
<entry>
<title>Fixed #36931 -- Handled LookupError in multipart parser for invalid RFC 2231 encoding.</title>
<updated>2026-02-24T18:44:42Z</updated>
<author>
<name>sammiee5311</name>
<email>sammiee5311@gmail.com</email>
</author>
<published>2026-02-16T03:21:03Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=e84dc8715e91d51364ba6bda2b2fb07e7a8b750e'/>
<id>urn:sha1:e84dc8715e91d51364ba6bda2b2fb07e7a8b750e</id>
<content type='text'>
Added LookupError to the except clause so invalid headers are silently
skipped, consistent with other malformed header handling.
</content>
</entry>
<entry>
<title>Fixed #36841 -- Made multipart parser class pluggable on HttpRequest.</title>
<updated>2026-02-10T22:59:02Z</updated>
<author>
<name>farhan</name>
<email>farhanalirazaazeemi@gmail.com</email>
</author>
<published>2026-01-05T19:34:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=7732f942a98a709750fc1fed2c69741183844a3c'/>
<id>urn:sha1:7732f942a98a709750fc1fed2c69741183844a3c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refs #36520 -- Ensured only the header value is passed to parse_header_parameters for multipart requests.</title>
<updated>2025-08-28T17:25:36Z</updated>
<author>
<name>Jake Howard</name>
<email>git@theorangeone.net</email>
</author>
<published>2025-08-20T15:04:48Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=41ff30f6f9d072036be1f74db8f0c8b21565299f'/>
<id>urn:sha1:41ff30f6f9d072036be1f74db8f0c8b21565299f</id>
<content type='text'>
Header parsing should apply only to the header value. The previous
implementation happened to work but relied on unintended behavior.
</content>
</entry>
<entry>
<title>Refs #36500 -- Rewrapped long docstrings and block comments via a script.</title>
<updated>2025-07-23T23:17:55Z</updated>
<author>
<name>django-bot</name>
<email>ops@djangoproject.com</email>
</author>
<published>2025-07-23T03:41:41Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=69a93a88edb56ba47f624dac7a21aacc47ea474f'/>
<id>urn:sha1:69a93a88edb56ba47f624dac7a21aacc47ea474f</id>
<content type='text'>
Rewrapped long docstrings and block comments to 79 characters + newline
using script from https://github.com/medmunds/autofix-w505.
</content>
</entry>
<entry>
<title>Fixed #36447 -- Selected preferred media type based on quality.</title>
<updated>2025-06-16T07:25:25Z</updated>
<author>
<name>Jake Howard</name>
<email>git@theorangeone.net</email>
</author>
<published>2025-06-10T22:00:25Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=12c1557060fc94fe5e1fbddc4578a4e29d38f77c'/>
<id>urn:sha1:12c1557060fc94fe5e1fbddc4578a4e29d38f77c</id>
<content type='text'>
When matching which entry in the `Accept` header should be used for
a given media type, the specificity matters. However once those are
resolved, only the quality matters when selecting preference.

Regression in c075508b4de8edf9db553b409f8a8ed2f26ecead.

Thank you to Anders Kaseorg for the report.
</content>
</entry>
<entry>
<title>Fixed #36446 -- Restored "q" in internal MediaType.params property.</title>
<updated>2025-06-09T20:37:40Z</updated>
<author>
<name>Natalia</name>
<email>124304+nessita@users.noreply.github.com</email>
</author>
<published>2025-06-09T12:59:11Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=cf5f36bf903a2854f5e395149cee707115b83744'/>
<id>urn:sha1:cf5f36bf903a2854f5e395149cee707115b83744</id>
<content type='text'>
The "q" key was removed while addressing ticket #36411. Despite
`MediaType.params` is undocumented and considered internal, it was used
in third-party projects (Zulip reported breakage), so this work restored
the `q` key in `params`.

Thanks Anders Kaseorg for the report.

Regression in c075508b4de8edf9db553b409f8a8ed2f26ecead.
</content>
</entry>
<entry>
<title>Fixed #36411 -- Made HttpRequest.get_preferred_type() consider media type parameters.</title>
<updated>2025-06-03T19:10:41Z</updated>
<author>
<name>Jake Howard</name>
<email>git@theorangeone.net</email>
</author>
<published>2025-05-27T16:00:29Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=c075508b4de8edf9db553b409f8a8ed2f26ecead'/>
<id>urn:sha1:c075508b4de8edf9db553b409f8a8ed2f26ecead</id>
<content type='text'>
HttpRequest.get_preferred_type() did not account for parameters in
Accept header media types (e.g., "text/vcard; version=3.0"). This caused
incorrect content negotiation when multiple types differed only by
parameters, reducing specificity as per RFC 7231 section 5.3.2
(https://datatracker.ietf.org/doc/html/rfc7231.html#section-5.3.2).

This fix updates get_preferred_type() to treat media types with
parameters as distinct, allowing more precise and standards-compliant
matching.

Thanks to magicfelix for the report, and to David Sanders and Sarah
Boyce for the reviews.
</content>
</entry>
<entry>
<title>Fixed #36332 -- Corrected HttpRequest.get_full_path() and HttpRequest.get_full_path_info() examples.</title>
<updated>2025-05-13T15:41:17Z</updated>
<author>
<name>Aleksandr Safonov</name>
<email>sashakashvile@gmail.com</email>
</author>
<published>2025-04-18T13:46:02Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=96c79be4e436f0b3045421556a2253cbff4533dc'/>
<id>urn:sha1:96c79be4e436f0b3045421556a2253cbff4533dc</id>
<content type='text'>
</content>
</entry>
</feed>
