From: Matthias Bussonnier Date: Sun, 26 Feb 2017 05:58:05 +0000 (-0800) Subject: bpo-29655: Fixed possible reference leaks in `import *`. (#301) X-Git-Tag: v3.7.0a1~1277 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=160edb43571311a3785785c1dfa784afc52d87be;p=python bpo-29655: Fixed possible reference leaks in `import *`. (#301) Patch by Matthias Bussonnier. --- diff --git a/Python/ceval.c b/Python/ceval.c index 0a82965c51..4022ba2ac9 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -2810,13 +2810,16 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag) TARGET(IMPORT_STAR) { PyObject *from = POP(), *locals; int err; - if (PyFrame_FastToLocalsWithError(f) < 0) + if (PyFrame_FastToLocalsWithError(f) < 0) { + Py_DECREF(from); goto error; + } locals = f->f_locals; if (locals == NULL) { PyErr_SetString(PyExc_SystemError, "no locals found during 'import *'"); + Py_DECREF(from); goto error; } err = import_all_from(locals, from);