From: Benjamin Peterson Date: Tue, 20 Dec 2011 19:29:45 +0000 (-0600) Subject: fix possible if unlikely leak X-Git-Tag: v3.2.3rc1~257 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=53aa1d7c5756eda92bd3276dd38dfa1f0c4bcee2;p=thirdparty%2FPython%2Fcpython.git fix possible if unlikely leak --- diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index d13c5470b35d..c4cfe1bca05c 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -8888,9 +8888,13 @@ unicode_maketrans(PyUnicodeObject *null, PyObject *args) /* create entries for translating chars in x to those in y */ for (i = 0; i < PyUnicode_GET_SIZE(x); i++) { key = PyLong_FromLong(PyUnicode_AS_UNICODE(x)[i]); + if (!key) + goto err; value = PyLong_FromLong(PyUnicode_AS_UNICODE(y)[i]); - if (!key || !value) + if (!value) { + Py_DECREF(key); goto err; + } res = PyDict_SetItem(new, key, value); Py_DECREF(key); Py_DECREF(value);