]> granicus.if.org Git - python/commitdiff
#2242: utf7 decoding crashes on bogus input on some Windows/MSVC versions
authorAntoine Pitrou <solipsis@pitrou.net>
Fri, 25 Jul 2008 17:45:59 +0000 (17:45 +0000)
committerAntoine Pitrou <solipsis@pitrou.net>
Fri, 25 Jul 2008 17:45:59 +0000 (17:45 +0000)
Lib/test/test_unicode.py
Objects/unicodeobject.c

index 24e8e772491666e2a83fcce5629859930dea86e3..f82535317303439be78fa3e1231fab6ef0953bd4 100644 (file)
@@ -532,6 +532,9 @@ class UnicodeTest(
 
         self.assertEqual(unicode('+3ADYAA-', 'utf-7', 'replace'), u'\ufffd')
 
+        # Issue #2242: crash on some Windows/MSVC versions
+        self.assertRaises(UnicodeDecodeError, '+\xc1'.decode, 'utf-7')
+
     def test_codecs_utf8(self):
         self.assertEqual(u''.encode('utf-8'), '')
         self.assertEqual(u'\u20ac'.encode('utf-8'), '\xe2\x82\xac')
index a62e92908dc2577d53c95228e8301edb04815ddf..16d97c34570466a89dba23f5b4d8e94592b02250 100644 (file)
@@ -1523,7 +1523,7 @@ PyObject *PyUnicode_DecodeUTF7Stateful(const char *s,
     while (s < e) {
         Py_UNICODE ch;
         restart:
-        ch = *s;
+        ch = (unsigned char) *s;
 
         if (inShift) {
             if ((ch == '-') || !B64CHAR(ch)) {