summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2012-05-09 13:24:31 +0200
committerAntoine Pitrou <solipsis@pitrou.net>2012-05-09 13:24:31 +0200
commit284fa08eb783a48f98eabda25aaaebefb5937cce (patch)
treec9e72f74afdb6b8fa20a86b911c0a9a101c14af4
parent5ec0340ce1927a2220a0fc510f2f9968d05917eb (diff)
downloadcpython-git-284fa08eb783a48f98eabda25aaaebefb5937cce.tar.gz
Issue #14761: Fix potential leak on an error case in the import machinery.
-rw-r--r--Misc/ACKS1
-rw-r--r--Misc/NEWS2
-rw-r--r--Python/import.c3
3 files changed, 5 insertions, 1 deletions
diff --git a/Misc/ACKS b/Misc/ACKS
index bf686f49dd..2fb33823ed 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -127,6 +127,7 @@ Tony Campbell
Brett Cannon
Mike Carlton
Terry Carroll
+Damien Cassou
Lorenzo M. Catucci
Donn Cave
Charles Cazabon
diff --git a/Misc/NEWS b/Misc/NEWS
index 1ac29ff758..29e6dadaa5 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -9,6 +9,8 @@ What's New in Python 2.7.4
Core and Builtins
-----------------
+- Issue #14761: Fix potential leak on an error case in the import machinery.
+
- Issue #14699: Fix calling the classmethod descriptor directly.
- Issue #11603 (again): Setting __repr__ to __str__ now raises a RuntimeError
diff --git a/Python/import.c b/Python/import.c
index 108a1e1b07..2f11e756c9 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -998,7 +998,7 @@ load_source_module(char *name, char *pathname, FILE *fp)
FILE *fpc;
char *buf;
char *cpathname;
- PyCodeObject *co;
+ PyCodeObject *co = NULL;
PyObject *m;
if (fstat(fileno(fp), &st) != 0) {
@@ -1054,6 +1054,7 @@ load_source_module(char *name, char *pathname, FILE *fp)
return m;
error_exit:
+ Py_XDECREF(co);
PyMem_FREE(buf);
return NULL;
}