diff options
-rw-r--r-- | Objects/unicodeobject.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 1eb24dd..fd9175d 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -12591,9 +12591,13 @@ unicode_maketrans(PyObject *null, PyObject *args) y_data = PyUnicode_DATA(y); for (i = 0; i < PyUnicode_GET_LENGTH(x); i++) { key = PyLong_FromLong(PyUnicode_READ(x_kind, x_data, i)); + if (!key) + goto err; value = PyLong_FromLong(PyUnicode_READ(y_kind, y_data, i)); - if (!key || !value) + if (!value) { + Py_DECREF(key); goto err; + } res = PyDict_SetItem(new, key, value); Py_DECREF(key); Py_DECREF(value); |