summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2016-10-25 07:17:33 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2016-10-25 07:17:33 (GMT)
commitc4a3e90aa8903d35a7b07e751a878fbd8326799e (patch)
treef12630f5b09c33626d1652914b0096caa9e3b922
parentb1f52879528283483b26a11b24b306c90db1169d (diff)
parent839023f12cd589a25e7e9e2ee1ed64485ab45fd9 (diff)
downloadcpython-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/NEWS3
-rw-r--r--Objects/unicodeobject.c12
2 files changed, 5 insertions, 10 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index e5d77af..563f0c0 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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 *