mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
Fix for [ 543344 ] Interpreter crashes when recoding; suggested
by Michael Stone (mbrierst). Python 2.1.4, 2.2.2 candidate.
This commit is contained in:
parent
604ade4ebd
commit
29273c87da
2 changed files with 12 additions and 1 deletions
|
@ -27,11 +27,20 @@ class EscapeDecodeTest(unittest.TestCase):
|
|||
def test_empty_escape_decode(self):
|
||||
self.assertEquals(codecs.escape_decode(""), ("", 0))
|
||||
|
||||
class RecodingTest(unittest.TestCase):
|
||||
def test_recoding(self):
|
||||
f = StringIO.StringIO()
|
||||
f2 = codecs.EncodedFile(f, "unicode_internal", "utf-8")
|
||||
f2.write(u"a")
|
||||
f2.close()
|
||||
# Python used to crash on this at exit because of a refcount
|
||||
# bug in _codecsmodule.c
|
||||
|
||||
def test_main():
|
||||
suite = unittest.TestSuite()
|
||||
suite.addTest(unittest.makeSuite(UTF16Test))
|
||||
suite.addTest(unittest.makeSuite(EscapeDecodeTest))
|
||||
suite.addTest(unittest.makeSuite(RecodingTest))
|
||||
test_support.run_suite(suite)
|
||||
|
||||
|
||||
|
|
|
@ -167,8 +167,10 @@ unicode_internal_decode(PyObject *self,
|
|||
&obj, &errors))
|
||||
return NULL;
|
||||
|
||||
if (PyUnicode_Check(obj))
|
||||
if (PyUnicode_Check(obj)) {
|
||||
Py_INCREF(obj);
|
||||
return codec_tuple(obj, PyUnicode_GET_SIZE(obj));
|
||||
}
|
||||
else {
|
||||
if (PyObject_AsReadBuffer(obj, (const void **)&data, &size))
|
||||
return NULL;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue