]> granicus.if.org Git - python/commitdiff
Issue #23960: Cleanup args and kwargs on error in PyErr_SetImportError
authorBerker Peksag <berker.peksag@gmail.com>
Sun, 1 May 2016 06:06:36 +0000 (09:06 +0300)
committerBerker Peksag <berker.peksag@gmail.com>
Sun, 1 May 2016 06:06:36 +0000 (09:06 +0300)
Patch by Ofer Schwarz.

Python/errors.c

index 47d7c4b9924164796a5e69c2bb462e177c59639b..e151cab17cb56be1a38b9d5af46fa86adcf7083d 100644 (file)
@@ -727,9 +727,9 @@ PyErr_SetImportError(PyObject *msg, PyObject *name, PyObject *path)
     PyTuple_SET_ITEM(args, 0, msg);
 
     if (PyDict_SetItemString(kwargs, "name", name) < 0)
-        return NULL;
+        goto done;
     if (PyDict_SetItemString(kwargs, "path", path) < 0)
-        return NULL;
+        goto done;
 
     error = PyObject_Call(PyExc_ImportError, args, kwargs);
     if (error != NULL) {
@@ -737,9 +737,9 @@ PyErr_SetImportError(PyObject *msg, PyObject *name, PyObject *path)
         Py_DECREF(error);
     }
 
+done:
     Py_DECREF(args);
     Py_DECREF(kwargs);
-
     return NULL;
 }