<feed xmlns='http://www.w3.org/2005/Atom'>
<title>django.git/tests/utils_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 #36943 -- Preserved any exception from URLconf module in autoreloader.</title>
<updated>2026-03-10T15:32:39Z</updated>
<author>
<name>varunkasyap</name>
<email>varunkasyap@hotmail.com</email>
</author>
<published>2026-03-03T13:40:51Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=3483bfc0920b0ef0b28563aabe8ff546699b6ece'/>
<id>urn:sha1:3483bfc0920b0ef0b28563aabe8ff546699b6ece</id>
<content type='text'>
Co-authored-by: Jacob Walls &lt;jacobtylerwalls@gmail.com&gt;
</content>
</entry>
<entry>
<title>Fixed #36293 -- Avoided buffering streaming responses in GZipMiddleware.</title>
<updated>2026-03-09T12:41:00Z</updated>
<author>
<name>farhan</name>
<email>farhanalirazaazeemi@gmail.com</email>
</author>
<published>2025-12-13T18:33:33Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=12bb16da8fbadac34e2de318cc79d7d765f35a96'/>
<id>urn:sha1:12bb16da8fbadac34e2de318cc79d7d765f35a96</id>
<content type='text'>
This avoids latency and/or blocking.

The example of streaming a CSV file was rewritten to employ batching for
greater efficiency in all layers (db, HTTP, etc.). The improved
performance from batching should outweigh the drag introduced by an
additional byte for each flush.

Co-authored-by: huoyinghui &lt;huoyinghui@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>Fixed CVE-2026-25674 -- Prevented potentially incorrect permissions on file system object creation.</title>
<updated>2026-03-03T12:09:32Z</updated>
<author>
<name>Natalia</name>
<email>124304+nessita@users.noreply.github.com</email>
</author>
<published>2026-01-21T21:03:20Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=019e44f67a8dace67b786e2818938c8691132988'/>
<id>urn:sha1:019e44f67a8dace67b786e2818938c8691132988</id>
<content type='text'>
This fix introduces `safe_makedirs()` in the `os` utils as a safer
alternative to `os.makedirs()` that avoids umask-related race conditions
in multi-threaded environments.

This is a workaround for https://github.com/python/cpython/issues/86533
and the solution is based on the fix being proposed for CPython.

Co-authored-by: Gregory P. Smith &lt;68491+gpshead@users.noreply.github.com&gt;
Co-authored-by: Zackery Spytz &lt;zspytz@gmail.com&gt;

Refs CVE-2020-24583 and #31921.

Thanks Tarek Nakkouch for the report, and Jake Howard, Jacob Walls, and
Shai Berger for reviews.
</content>
</entry>
<entry>
<title>Fixed #36944 -- Removed MAX_LENGTH_HTML and related 5M chars limit references from HTML truncation docs.</title>
<updated>2026-02-25T16:08:52Z</updated>
<author>
<name>Natalia</name>
<email>124304+nessita@users.noreply.github.com</email>
</author>
<published>2026-02-25T13:37:38Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=bbc6818bc12f14c1764a7eb68556018195f56b59'/>
<id>urn:sha1:bbc6818bc12f14c1764a7eb68556018195f56b59</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed CVE-2026-1285 -- Mitigated potential DoS in django.utils.text.Truncator for HTML input.</title>
<updated>2026-02-03T12:54:16Z</updated>
<author>
<name>Natalia</name>
<email>124304+nessita@users.noreply.github.com</email>
</author>
<published>2026-01-21T12:53:10Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=a33540b3e20b5d759aa8b2e4b9ca0e8edd285344'/>
<id>urn:sha1:a33540b3e20b5d759aa8b2e4b9ca0e8edd285344</id>
<content type='text'>
The `TruncateHTMLParser` used `deque.remove()` to remove tags from the
stack when processing end tags. With crafted input containing many
unmatched end tags, this caused repeated full scans of the tag stack,
leading to quadratic time complexity.

The fix uses LIFO semantics, only removing a tag from the stack when it
matches the most recently opened tag. This avoids linear scans for
unmatched end tags and reduces complexity to linear time.

Refs #30686 and 6ee37ada3241ed263d8d1c2901b030d964cbd161.

Thanks Seokchan Yoon for the report, and Jake Howard and Jacob Walls for
reviews.
</content>
</entry>
<entry>
<title>Fixed #36810 -- Avoided infinite recursion in SimpleLazyObject.__repr__().</title>
<updated>2025-12-24T17:46:41Z</updated>
<author>
<name>Sean</name>
<email>sean@pop-os.home</email>
</author>
<published>2025-12-18T23:37:07Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=8e4b531111ddd3256c45eee601947e475651e8e7'/>
<id>urn:sha1:8e4b531111ddd3256c45eee601947e475651e8e7</id>
<content type='text'>
Detect when `SimpleLazyObject._setupfunc` is a bound method of the same
instance to use a safe representation and avoid infinite recursion.
</content>
</entry>
<entry>
<title>Refs #36810 -- Avoided infinite recursion in LazyNonce.__repr__().</title>
<updated>2025-12-24T17:46:41Z</updated>
<author>
<name>Sean Reed</name>
<email>sean@sean-reed.com</email>
</author>
<published>2025-12-19T21:09:25Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=165c3599965e63f88649a46fcc2ff681c52f2f66'/>
<id>urn:sha1:165c3599965e63f88649a46fcc2ff681c52f2f66</id>
<content type='text'>
Moved nonce generation in ``django.utils.csp.LazyNonce`` to a function
to avoid infinite recursion in ``SimpleLazyObject.__repr__`` for
unevaluated instances.

Co-authored-by: Natalia &lt;124304+nessita@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>Fixed #36747 -- Parsed weeks from ISO 8601 format in parse_duration().</title>
<updated>2025-12-17T15:19:05Z</updated>
<author>
<name>varunkasyap</name>
<email>varunkasyap@hotmail.com</email>
</author>
<published>2025-11-22T12:24:05Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=0d8548e5831bc610102d5e4b8a2366f26818a28a'/>
<id>urn:sha1:0d8548e5831bc610102d5e4b8a2366f26818a28a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refs #36499 -- Adjusted test_strip_tags following Python behavior change for incomplete entities.</title>
<updated>2025-12-11T16:28:49Z</updated>
<author>
<name>Jacob Walls</name>
<email>jacobtylerwalls@gmail.com</email>
</author>
<published>2025-12-11T13:44:19Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=7b80b2186300620931009fd62c2969f108fe7a62'/>
<id>urn:sha1:7b80b2186300620931009fd62c2969f108fe7a62</id>
<content type='text'>
</content>
</entry>
</feed>
