]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[Backport r51247 | neal.norwitz]
authorAndrew M. Kuchling <amk@amk.ca>
Thu, 5 Oct 2006 17:19:30 +0000 (17:19 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Thu, 5 Oct 2006 17:19:30 +0000 (17:19 +0000)
cpathname could be NULL if it was longer than MAXPATHLEN.  Don't try
to write the .pyc to NULL.

Check results of PyList_GetItem() and PyModule_GetDict() are not NULL.

Klocwork 282, 283, 285

Python/import.c

index fff4b836b8bfda3a05b19d87e0d8677d6bb0b9b6..8776d9a34aecd5de51309b90eb18d7818f2c085d 100644 (file)
@@ -904,7 +904,8 @@ load_source_module(char *name, char *pathname, FILE *fp)
                if (Py_VerboseFlag)
                        PySys_WriteStderr("import %s # from %s\n",
                                name, pathname);
-               write_compiled_module(co, cpathname, mtime);
+               if (cpathname)
+                       write_compiled_module(co, cpathname, mtime);
        }
        m = PyImport_ExecCodeModuleEx(name, (PyObject *)co, pathname);
        Py_DECREF(co);
@@ -1194,6 +1195,8 @@ find_module(char *fullname, char *subname, PyObject *path, char *buf,
        for (i = 0; i < npath; i++) {
                PyObject *copy = NULL;
                PyObject *v = PyList_GetItem(path, i);
+               if (!v)
+                       return NULL;
 #ifdef Py_USING_UNICODE
                if (PyUnicode_Check(v)) {
                        copy = PyUnicode_Encode(PyUnicode_AS_UNICODE(v),
@@ -2827,6 +2830,8 @@ initimp(void)
        if (m == NULL)
                goto failure;
        d = PyModule_GetDict(m);
+       if (d == NULL)
+               goto failure;
 
        if (setint(d, "SEARCH_ERROR", SEARCH_ERROR) < 0) goto failure;
        if (setint(d, "PY_SOURCE", PY_SOURCE) < 0) goto failure;