diff options
author | Guido van Rossum <guido@python.org> | 2000-11-27 22:22:36 +0000 |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2000-11-27 22:22:36 +0000 |
commit | 9de924faa7ff3a058f0e10dc5c14f34b8c380ead (patch) | |
tree | 3f4583afbcf6e67b17814e96b3c8bd37775fa72d /Python/compile.c | |
parent | 93c36498497fddf133d834b8bb418fe23b8efb2c (diff) | |
download | cpython-9de924faa7ff3a058f0e10dc5c14f34b8c380ead.tar.gz |
Plug a memory leak in com_import_stmt(): the tuple created to hold the
"..." in "from M import ..." was never DECREFed. Leak reported by
James Slaughter and nailed by Barry, who also provided an earlier
version of this patch.
Diffstat (limited to 'Python/compile.c')
-rw-r--r-- | Python/compile.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Python/compile.c b/Python/compile.c index 77ae001c11..aca1705b21 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -2325,11 +2325,11 @@ static void com_import_stmt(struct compiling *c, node *n) { int i; - PyObject *tup; REQ(n, import_stmt); /* 'import' dotted_name (',' dotted_name)* | 'from' dotted_name 'import' ('*' | NAME (',' NAME)*) */ if (STR(CHILD(n, 0))[0] == 'f') { + PyObject *tup; /* 'from' dotted_name 'import' ... */ REQ(CHILD(n, 1), dotted_name); @@ -2344,6 +2344,7 @@ com_import_stmt(struct compiling *c, node *n) } } com_addoparg(c, LOAD_CONST, com_addconst(c, tup)); + Py_DECREF(tup); com_push(c, 1); com_addopname(c, IMPORT_NAME, CHILD(n, 1)); if (TYPE(CHILD(n, 3)) == STAR) |