[Python-checkins] r50678 - python/trunk/Python/import.c
neal.norwitz
python-checkins at python.org
Sun Jul 16 04:17:37 CEST 2006
Author: neal.norwitz
Date: Sun Jul 16 04:17:36 2006
New Revision: 50678
Modified:
python/trunk/Python/import.c
Log:
Fix memory leak under some conditions.
Reported by Klocwork, #98.
Modified: python/trunk/Python/import.c
==============================================================================
--- python/trunk/Python/import.c (original)
+++ python/trunk/Python/import.c Sun Jul 16 04:17:36 2006
@@ -1906,11 +1906,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 */
@@ -1918,22 +1917,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