bpo-29655: Fixed possible reference leaks in `import *`. (#301)

Patch by Matthias Bussonnier.
This commit is contained in:
Matthias Bussonnier 2017-02-25 21:58:05 -08:00 committed by Serhiy Storchaka
parent 53c1892dc3
commit 160edb4357
1 changed files with 4 additions and 1 deletions

View File

@ -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);