From: Serhiy Storchaka Date: Fri, 4 Jan 2013 10:39:34 +0000 (+0200) Subject: Issue #16856: Fix a segmentation fault from calling repr() on a dict with X-Git-Tag: v3.3.1rc1~423 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6c83e739d7b1690f8763b2437266effa71173324;p=python Issue #16856: Fix a segmentation fault from calling repr() on a dict with a key whose repr raise an exception. --- diff --git a/Misc/NEWS b/Misc/NEWS index 41126a6e43..5741620f11 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -12,6 +12,9 @@ What's New in Python 3.3.1? Core and Builtins ----------------- +- Issue #16856: Fix a segmentation fault from calling repr() on a dict with + a key whose repr raise an exception. + - Issue #16367: Fix FileIO.readall() on Windows for files larger than 2 GB. - Issue #16455: On FreeBSD and Solaris, if the locale is C, the diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 3b307ed1d9..1522a16ba6 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -10672,7 +10672,7 @@ PyUnicode_Append(PyObject **p_left, PyObject *right) return; } left = *p_left; - if (right == NULL || !PyUnicode_Check(left)) { + if (right == NULL || left == NULL || !PyUnicode_Check(left)) { if (!PyErr_Occurred()) PyErr_BadInternalCall(); goto error;