<feed xmlns='http://www.w3.org/2005/Atom'>
<title>django.git/tests/utils_tests/test_os_utils.py, 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-03-03T12:09:32Z</updated>
<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>Refs #33476 -- Reformatted code with Black.</title>
<updated>2022-02-07T19:37:05Z</updated>
<author>
<name>django-bot</name>
<email>ops@djangoproject.com</email>
</author>
<published>2022-02-03T19:24:19Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=9c19aff7c7561e3a82978a272ecdaad40dda5c00'/>
<id>urn:sha1:9c19aff7c7561e3a82978a272ecdaad40dda5c00</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refs #30461 -- Added django.utils._os.to_path().</title>
<updated>2019-08-13T15:17:39Z</updated>
<author>
<name>Claude Paroz</name>
<email>claude@2xlibre.net</email>
</author>
<published>2019-08-10T09:28:00Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=88c0b907e76bccfe1a25dc6580272b07aebd45d6'/>
<id>urn:sha1:88c0b907e76bccfe1a25dc6580272b07aebd45d6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Removed redundant numbered parameters from str.format().</title>
<updated>2014-12-03T19:27:38Z</updated>
<author>
<name>Berker Peksag</name>
<email>berker.peksag@gmail.com</email>
</author>
<published>2014-11-27T00:41:27Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=560b4207b1490a7d0cbf70cfbeba7daf2082e5be'/>
<id>urn:sha1:560b4207b1490a7d0cbf70cfbeba7daf2082e5be</id>
<content type='text'>
Since Python 2.7 and 3.1, "{0} {1}" is equivalent to "{} {}".
</content>
</entry>
<entry>
<title>Raised SuspiciousFileOperation in safe_join.</title>
<updated>2014-11-11T18:05:14Z</updated>
<author>
<name>Aymeric Augustin</name>
<email>aymeric.augustin@m4x.org</email>
</author>
<published>2014-11-11T17:59:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=b8ba73cd0cb6a3dbdaeb3df65936970956829de3'/>
<id>urn:sha1:b8ba73cd0cb6a3dbdaeb3df65936970956829de3</id>
<content type='text'>
Added a test for the condition safe_join is designed to prevent.

Previously, a generic ValueError was raised. It was impossible to tell
an intentional exception raised to implement safe_join's contract from
an unintentional exception caused by incorrect inputs or unexpected
conditions. That resulted in bizarre exception catching patterns, which
this patch removes.

Since safe_join is a private API and since the change is unlikely to
create security issues for users who use it anyway -- at worst, an
uncaught SuspiciousFileOperation exception will bubble up -- it isn't
documented.
</content>
</entry>
<entry>
<title>Stopped using django.utils.unittest in the test suite.</title>
<updated>2013-07-01T12:29:33Z</updated>
<author>
<name>Aymeric Augustin</name>
<email>aymeric.augustin@m4x.org</email>
</author>
<published>2013-07-01T12:22:27Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=cfcf4b3605f9653e4e056088d89932b2a0e4281b'/>
<id>urn:sha1:cfcf4b3605f9653e4e056088d89932b2a0e4281b</id>
<content type='text'>
Refs #20680.
</content>
</entry>
<entry>
<title>Modified utils_tests for unittest2 discovery.</title>
<updated>2013-04-12T21:31:58Z</updated>
<author>
<name>Preston Timmons</name>
<email>prestontimmons@gmail.com</email>
</author>
<published>2013-04-06T18:59:39Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/django.git/commit/?id=612ef3e5c9ba172868d22d93be64a340b7742fc6'/>
<id>urn:sha1:612ef3e5c9ba172868d22d93be64a340b7742fc6</id>
<content type='text'>
</content>
</entry>
</feed>
