diff options
-rw-r--r-- | Lib/tempfile.py | 2 | ||||
-rw-r--r-- | Lib/test/test_tempfile.py | 4 | ||||
-rw-r--r-- | Misc/NEWS | 5 |
3 files changed, 8 insertions, 3 deletions
diff --git a/Lib/tempfile.py b/Lib/tempfile.py index 10b6a1b..7df881b 100644 --- a/Lib/tempfile.py +++ b/Lib/tempfile.py @@ -125,7 +125,7 @@ class _RandomNameSequence: def __next__(self): c = self.characters choose = self.rng.choice - letters = [choose(c) for dummy in "123456"] + letters = [choose(c) for dummy in range(8)] return ''.join(letters) def _candidate_tempdir_list(): diff --git a/Lib/test/test_tempfile.py b/Lib/test/test_tempfile.py index 437b02b..6b146d2 100644 --- a/Lib/test/test_tempfile.py +++ b/Lib/test/test_tempfile.py @@ -35,7 +35,7 @@ else: # Common functionality. class BaseTestCase(unittest.TestCase): - str_check = re.compile(r"[a-zA-Z0-9_-]{6}$") + str_check = re.compile(r"^[a-z0-9_-]{8}$") def setUp(self): self._warnings_manager = support.check_warnings() @@ -62,7 +62,7 @@ class BaseTestCase(unittest.TestCase): nbase = nbase[len(pre):len(nbase)-len(suf)] self.assertTrue(self.str_check.match(nbase), - "random string '%s' does not match /^[a-zA-Z0-9_-]{6}$/" + "random string '%s' does not match ^[a-z0-9_-]{8}$" % nbase) @@ -28,6 +28,11 @@ Core and Builtins Library ------- +- Issue #12015: The tempfile module now uses a suffix of 8 random characters + instead of 6, to reduce the risk of filename collision. The entropy was + reduced when uppercase letters were removed from the charset used to generate + random characters. + - Issue #18585: Add :func:`textwrap.shorten` to collapse and truncate a piece of text to a given length. |