mirror of
https://github.com/python/cpython.git
synced 2025-08-30 21:48:47 +00:00
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:
parent
0e75c06886
commit
3e0651b5fa
4 changed files with 16 additions and 5 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue