]> granicus.if.org Git - python/commitdiff
Issue #10762: Guard against invalid/non-supported format string '%f' on Windows....
authorSenthil Kumaran <orsenthil@gmail.com>
Wed, 6 Apr 2011 06:27:47 +0000 (14:27 +0800)
committerSenthil Kumaran <orsenthil@gmail.com>
Wed, 6 Apr 2011 06:27:47 +0000 (14:27 +0800)
Lib/test/test_time.py
Modules/timemodule.c

index b4d12b4aaf9bc7a1db6e66029f53aa644427e1e6..0f00b1af52d24689153bc803f94fbe757f78b42f 100644 (file)
@@ -1,6 +1,7 @@
 from test import test_support
 import time
 import unittest
+import sys
 
 
 class TimeTestCase(unittest.TestCase):
@@ -37,6 +38,13 @@ class TimeTestCase(unittest.TestCase):
             except ValueError:
                 self.fail('conversion specifier: %r failed.' % format)
 
+        # Issue #10762: Guard against invalid/non-supported format string
+        # so that Python don't crash (Windows crashes when the format string
+        # input to [w]strftime is not kosher.
+        if sys.platform.startswith('win'):
+            with self.assertRaises(ValueError):
+                time.strftime('%f')
+
     def test_strftime_bounds_checking(self):
         # Make sure that strftime() checks the bounds of the various parts
         #of the time tuple (0 is valid for *all* values).
index 51f472ef629474fb1a768cf690bd61076ec7620c..397cf8cd6f9e002e9baadd81fb8876c2799da498 100644 (file)
@@ -487,7 +487,7 @@ time_strftime(PyObject *self, PyObject *args)
         if (outbuf[1]=='#')
             ++outbuf; /* not documented by python, */
         if (outbuf[1]=='\0' ||
-            !strchr("aAbBcdfHIjmMpSUwWxXyYzZ%", outbuf[1]))
+            !strchr("aAbBcdHIjmMpSUwWxXyYzZ%", outbuf[1]))
         {
             PyErr_SetString(PyExc_ValueError, "Invalid format string");
             return 0;