Commit 566373e9 authored by Guido van Rossum's avatar Guido van Rossum

While scalling sys.modules, skip entries that don't have string keys,

to protect us from jokers who put items with non-string keys in
sys.modules.  Reported by Greg Stein.
parent 231c8c08
......@@ -274,8 +274,8 @@ PyImport_Cleanup()
while (PyDict_Next(modules, &pos, &key, &value)) {
if (value->ob_refcnt != 1)
continue;
if (PyModule_Check(value)) {
name = PyString_AsString(key);
if (PyString_Check(key) && PyModule_Check(value)) {
name = PyString_AS_STRING(key);
if (strcmp(name, "__builtin__") == 0)
continue;
if (strcmp(name, "sys") == 0)
......@@ -293,8 +293,8 @@ PyImport_Cleanup()
/* Next, delete all modules (still skipping __builtin__ and sys) */
pos = 0;
while (PyDict_Next(modules, &pos, &key, &value)) {
if (PyModule_Check(value)) {
name = PyString_AsString(key);
if (PyString_Check(key) && PyModule_Check(value)) {
name = PyString_AS_STRING(key);
if (strcmp(name, "__builtin__") == 0)
continue;
if (strcmp(name, "sys") == 0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment