diff options
author | Guido van Rossum <guido@python.org> | 1998-05-19 15:09:05 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1998-05-19 15:09:05 (GMT) |
commit | 9c0afe5dc71bb072f7aa471b572799fabda52e40 (patch) | |
tree | 825331800729ecde5fe4bf76c203bbdcdb646d81 /Python/import.c | |
parent | edde1501272e18e7fa072b851c1f505296a7dc90 (diff) | |
download | cpython-9c0afe5dc71bb072f7aa471b572799fabda52e40.zip cpython-9c0afe5dc71bb072f7aa471b572799fabda52e40.tar.gz cpython-9c0afe5dc71bb072f7aa471b572799fabda52e40.tar.bz2 |
Fix a curious bug: statements like "import sys.time" would succeed,
because the path through the code would notice that sys.__path__ did
not exist and it would fall back to the default path (builtins +
sys.path) instead of failing). No longer.
Diffstat (limited to 'Python/import.c')
-rw-r--r-- | Python/import.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/Python/import.c b/Python/import.c index 6c1050f..4090118 100644 --- a/Python/import.c +++ b/Python/import.c @@ -1664,9 +1664,16 @@ import_submodule(mod, subname, fullname) struct filedescr *fdp; FILE *fp = NULL; - path = PyObject_GetAttrString(mod, "__path__"); - if (path == NULL) - PyErr_Clear(); + if (mod == Py_None) + path = NULL; + else { + path = PyObject_GetAttrString(mod, "__path__"); + if (path == NULL) { + PyErr_Clear(); + Py_INCREF(Py_None); + return Py_None; + } + } buf[0] = '\0'; fdp = find_module(subname, path, |