diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2015-07-16 20:20:19 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2015-07-16 20:20:19 (GMT) |
commit | 8cc80f1d8199a29a432c8caeb3142f9aa35012fd (patch) | |
tree | 7909c2e728f6cb5edd9b6e971f21df5946981288 | |
parent | a3626bc5bddf9bf43f33060f4ea1a99f25e0c7f1 (diff) | |
parent | 579db160b392404b6dd9608ce5f5bef29a9885a4 (diff) | |
download | cpython-8cc80f1d8199a29a432c8caeb3142f9aa35012fd.zip cpython-8cc80f1d8199a29a432c8caeb3142f9aa35012fd.tar.gz cpython-8cc80f1d8199a29a432c8caeb3142f9aa35012fd.tar.bz2 |
Merge 3.4
-rw-r--r-- | Lib/test/multibytecodec_support.py | 7 | ||||
-rw-r--r-- | Misc/NEWS | 2 | ||||
-rw-r--r-- | Modules/cjkcodecs/multibytecodec.c | 3 |
3 files changed, 12 insertions, 0 deletions
diff --git a/Lib/test/multibytecodec_support.py b/Lib/test/multibytecodec_support.py index bc1cfc8..f9884c6 100644 --- a/Lib/test/multibytecodec_support.py +++ b/Lib/test/multibytecodec_support.py @@ -270,6 +270,13 @@ class TestBase: self.assertEqual(ostream.getvalue(), self.tstring[0]) + def test_streamwriter_reset_no_pending(self): + # Issue #23247: Calling reset() on a fresh StreamWriter instance + # (without pending data) must not crash + stream = BytesIO() + writer = self.writer(stream) + writer.reset() + class TestBase_Mapping(unittest.TestCase): pass_enctest = [] @@ -169,6 +169,8 @@ Core and Builtins Library ------- +- Issue #23247: Fix a crash in the StreamWriter.reset() of CJK codecs. + - Issue #24270: Add math.isclose() and cmath.isclose() functions as per PEP 485. Contributed by Chris Barker and Tal Einat. diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c index c051514..e4547f7 100644 --- a/Modules/cjkcodecs/multibytecodec.c +++ b/Modules/cjkcodecs/multibytecodec.c @@ -1685,6 +1685,9 @@ _multibytecodec_MultibyteStreamWriter_reset_impl(MultibyteStreamWriterObject *se { PyObject *pwrt; + if (!self->pending) + Py_RETURN_NONE; + pwrt = multibytecodec_encode(self->codec, &self->state, self->pending, NULL, self->errors, MBENC_FLUSH | MBENC_RESET); |