diff options
| author | Guido van Rossum <guido@python.org> | 1997-11-11 16:29:38 +0000 |
|---|---|---|
| committer | Guido van Rossum <guido@python.org> | 1997-11-11 16:29:38 +0000 |
| commit | dfed725e2c351676174ed2e046fe6c5288e21488 (patch) | |
| tree | 2a527d0c6f6c7ecc8a542432ad771cf5040f4bca | |
| parent | 3120bc388805ba51d48bdfb2ed9f2923ee2241b2 (diff) | |
| download | cpython-git-dfed725e2c351676174ed2e046fe6c5288e21488.tar.gz | |
Fix memory leak in exec statement with code object -- the None returned
by PyEval_EvalCode() on success was never DECREF'ed.
Fix by Bernhard Herzog.
| -rw-r--r-- | Python/ceval.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Python/ceval.c b/Python/ceval.c index dd7faf945c..fb179d1aa6 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -2773,9 +2773,11 @@ exec_statement(f, prog, globals, locals) if (PyDict_GetItemString(globals, "__builtins__") == NULL) PyDict_SetItemString(globals, "__builtins__", f->f_builtins); if (PyCode_Check(prog)) { - if (PyEval_EvalCode((PyCodeObject *) prog, - globals, locals) == NULL) + v = PyEval_EvalCode((PyCodeObject *) prog, + globals, locals); + if (v == NULL) return -1; + Py_DECREF(v); return 0; } if (PyFile_Check(prog)) { |
