From: Antoine Pitrou Date: Fri, 25 Jul 2008 17:45:59 +0000 (+0000) Subject: #2242: utf7 decoding crashes on bogus input on some Windows/MSVC versions X-Git-Tag: v2.6b3~231 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4982d5d04acff706cd43c77e757c0121a14a0c8d;p=python #2242: utf7 decoding crashes on bogus input on some Windows/MSVC versions --- diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py index 24e8e77249..f825353173 100644 --- a/Lib/test/test_unicode.py +++ b/Lib/test/test_unicode.py @@ -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') diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index a62e92908d..16d97c3457 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -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)) {