mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Issue #24917: time_strftime() buffer over-read.
This commit is contained in:
parent
714e49371b
commit
e5b5895b5b
3 changed files with 25 additions and 6 deletions
|
@ -174,6 +174,19 @@ class TimeTestCase(unittest.TestCase):
|
|||
def test_strftime_bounding_check(self):
|
||||
self._bounds_checking(lambda tup: time.strftime('', tup))
|
||||
|
||||
def test_strftime_format_check(self):
|
||||
# Test that strftime does not crash on invalid format strings
|
||||
# that may trigger a buffer overread. When not triggered,
|
||||
# strftime may succeed or raise ValueError depending on
|
||||
# the platform.
|
||||
for x in [ '', 'A', '%A', '%AA' ]:
|
||||
for y in range(0x0, 0x10):
|
||||
for z in [ '%', 'A%', 'AA%', '%A%', 'A%A%', '%#' ]:
|
||||
try:
|
||||
time.strftime(x * y + z)
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
def test_default_values_for_zero(self):
|
||||
# Make sure that using all zeros uses the proper default
|
||||
# values. No test for daylight savings since strftime() does
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue