From: Serhiy Storchaka Date: Thu, 15 Jun 2017 18:15:11 +0000 (+0300) Subject: [3.6] bpo-30626: Fix error handling in PyImport_Import(). (GH-2103) (#2221) X-Git-Tag: v3.6.2rc1~18 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fab05de21480fc54a5101cf813195cb32724b5ad;p=thirdparty%2FPython%2Fcpython.git [3.6] bpo-30626: Fix error handling in PyImport_Import(). (GH-2103) (#2221) In rare circumstances PyImport_Import() could return NULL without raising an error. (cherry picked from commit 145541c) --- diff --git a/Python/import.c b/Python/import.c index cd865a542366..a23a1026e111 100644 --- a/Python/import.c +++ b/Python/import.c @@ -1785,9 +1785,13 @@ PyImport_Import(PyObject *module_name) Py_DECREF(r); modules = PyImport_GetModuleDict(); - r = PyDict_GetItem(modules, module_name); - if (r != NULL) + r = PyDict_GetItemWithError(modules, module_name); + if (r != NULL) { Py_INCREF(r); + } + else if (!PyErr_Occurred()) { + PyErr_SetObject(PyExc_KeyError, module_name); + } err: Py_XDECREF(globals);