changeset: 104692:74569ecd67e4 branch: 3.5 parent: 104683:05b5e1aaedc5 parent: 104691:71dce630dc02 user: Serhiy Storchaka date: Tue Oct 25 10:13:43 2016 +0300 files: Misc/NEWS Objects/clinic/unicodeobject.c.h Objects/unicodeobject.c description: Issue #28426: Fixed potential crash in PyUnicode_AsDecodedObject() in debug build. diff -r 05b5e1aaedc5 -r 74569ecd67e4 Misc/NEWS --- a/Misc/NEWS Mon Oct 24 23:00:03 2016 -0700 +++ b/Misc/NEWS Tue Oct 25 10:13:43 2016 +0300 @@ -10,6 +10,9 @@ Core and Builtins ----------------- +- Issue #28426: Fixed potential crash in PyUnicode_AsDecodedObject() in debug + build. + - Issue #23782: Fixed possible memory leak in _PyTraceback_Add() and exception loss in PyTraceBack_Here(). diff -r 05b5e1aaedc5 -r 74569ecd67e4 Objects/unicodeobject.c --- a/Objects/unicodeobject.c Mon Oct 24 23:00:03 2016 -0700 +++ b/Objects/unicodeobject.c Tue Oct 25 10:13:43 2016 +0300 @@ -3026,24 +3026,16 @@ const char *encoding, const char *errors) { - PyObject *v; - if (!PyUnicode_Check(unicode)) { PyErr_BadArgument(); - goto onError; + return NULL; } if (encoding == NULL) encoding = PyUnicode_GetDefaultEncoding(); /* Decode via the codec registry */ - v = PyCodec_Decode(unicode, encoding, errors); - if (v == NULL) - goto onError; - return unicode_result(v); - - onError: - return NULL; + return PyCodec_Decode(unicode, encoding, errors); } PyObject *