[Python-checkins] r52105 - python/branches/release24-maint/Python/import.c
andrew.kuchling
python-checkins at python.org
Tue Oct 3 20:32:26 CEST 2006
Author: andrew.kuchling
Date: Tue Oct 3 20:32:25 2006
New Revision: 52105
Modified:
python/branches/release24-maint/Python/import.c
Log:
[Backport r50678 | neal.norwitz]
Fix memory leak under some conditions.
Reported by Klocwork, #98.
Modified: python/branches/release24-maint/Python/import.c
==============================================================================
--- python/branches/release24-maint/Python/import.c (original)
+++ python/branches/release24-maint/Python/import.c Tue Oct 3 20:32:25 2006
@@ -1847,11 +1847,10 @@
if (co == NULL)
return -1;
if (!PyCode_Check(co)) {
- Py_DECREF(co);
PyErr_Format(PyExc_TypeError,
"frozen object %.200s is not a code object",
name);
- return -1;
+ goto err_return;
}
if (ispackage) {
/* Set __path__ to the package name */
@@ -1859,22 +1858,25 @@
int err;
m = PyImport_AddModule(name);
if (m == NULL)
- return -1;
+ goto err_return;
d = PyModule_GetDict(m);
s = PyString_InternFromString(name);
if (s == NULL)
- return -1;
+ goto err_return;
err = PyDict_SetItemString(d, "__path__", s);
Py_DECREF(s);
if (err != 0)
- return err;
+ goto err_return;
}
m = PyImport_ExecCodeModuleEx(name, co, "<frozen>");
- Py_DECREF(co);
if (m == NULL)
- return -1;
+ goto err_return;
+ Py_DECREF(co);
Py_DECREF(m);
return 1;
+err_return:
+ Py_DECREF(co);
+ return -1;
}
More information about the Python-checkins
mailing list