Christian Heimes added the comment:

In theory you are right. m->md_def could be NULL, too. But in practice it's 
only going to happen when you have a faulty C extension. The code tries to load 
a dynamic module (ELF shared library, Windows DLL, ...) with 
_PyImport_GetDynLoadFunc() a couple of lines before PyModule_GetDef(). Any 
invalid file is rejected:

>>> imp.load_dynamic("os", "Lib/os.py")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: Lib/os.py: invalid ELF header

But an extra check doesn't hurt. How do you like this?

    def = PyModule_GetDef(m);
    if (def == NULL) {
        if (!PyErr_Occured()) {
            /* m->md_def == NULL */
            PyErr_BadArgument();
        }
        goto error;
    }

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue18426>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to