Issue #18065: For frozen packages set __path__ to [].

Previously __path__ was set to [__name__], but that could lead to bad
results if someone managed to circumvent the frozen importer and
somehow ended up with a finder that thought __name__ was a legit
directory/location.
This commit is contained in:
Brett Cannon 2013-05-31 23:18:39 -04:00
parent 0e75c06886
commit 3e0651b5fa
4 changed files with 16 additions and 5 deletions

View file

@ -1107,19 +1107,17 @@ PyImport_ImportFrozenModuleObject(PyObject *name)
goto err_return;
}
if (ispackage) {
/* Set __path__ to the package name */
/* Set __path__ to the empty list */
PyObject *d, *l;
int err;
m = PyImport_AddModuleObject(name);
if (m == NULL)
goto err_return;
d = PyModule_GetDict(m);
l = PyList_New(1);
l = PyList_New(0);
if (l == NULL) {
goto err_return;
}
Py_INCREF(name);
PyList_SET_ITEM(l, 0, name);
err = PyDict_SetItemString(d, "__path__", l);
Py_DECREF(l);
if (err != 0)