diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2016-10-25 07:17:33 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2016-10-25 07:17:33 (GMT) |
commit | c4a3e90aa8903d35a7b07e751a878fbd8326799e (patch) | |
tree | f12630f5b09c33626d1652914b0096caa9e3b922 | |
parent | b1f52879528283483b26a11b24b306c90db1169d (diff) | |
parent | 839023f12cd589a25e7e9e2ee1ed64485ab45fd9 (diff) | |
download | cpython-c4a3e90aa8903d35a7b07e751a878fbd8326799e.zip cpython-c4a3e90aa8903d35a7b07e751a878fbd8326799e.tar.gz cpython-c4a3e90aa8903d35a7b07e751a878fbd8326799e.tar.bz2 |
Issue #28426: Fixed potential crash in PyUnicode_AsDecodedObject() in debug build.
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Objects/unicodeobject.c | 12 |
2 files changed, 5 insertions, 10 deletions
@@ -10,6 +10,9 @@ What's New in Python 3.6.0 beta 3 Core and Builtins ----------------- +- Issue #28426: Fixed potential crash in PyUnicode_AsDecodedObject() in debug + build. + - Issue #28517: Fixed of-by-one error in the peephole optimizer that caused keeping unreachable code. diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 80e6cf2..4c95111 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -3236,24 +3236,16 @@ PyUnicode_AsDecodedObject(PyObject *unicode, 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 * |