]> granicus.if.org Git - python/commitdiff
Add ready checks for make_compiled_pathname.
authorMartin v. Löwis <martin@v.loewis.de>
Sun, 23 Oct 2011 15:35:46 +0000 (17:35 +0200)
committerMartin v. Löwis <martin@v.loewis.de>
Sun, 23 Oct 2011 15:35:46 +0000 (17:35 +0200)
Python/import.c

index 1101c920f54bd2eea3530e8083fabcbd86a3414d..5dcaf3a40ea232677d456a2d82dbf51ccf53fca0 100644 (file)
@@ -929,7 +929,10 @@ rightmost_sep_obj(PyObject* o)
    for the compiled file, or NULL if there's no space in the buffer.
    Doesn't set an exception.
 
-   foo.py -> __pycache__/foo.<tag>.pyc */
+   foo.py -> __pycache__/foo.<tag>.pyc
+
+   pathstr is assumed to be "ready".
+*/
 
 static PyObject*
 make_compiled_pathname(PyObject *pathstr, int debug)
@@ -1458,6 +1461,8 @@ load_source_module(PyObject *name, PyObject *pathname, FILE *fp)
         goto error;
     }
 #endif
+    if (PyUnicode_READY(pathname) < 0)
+        return NULL;
     cpathname = make_compiled_pathname(pathname, !Py_OptimizeFlag);
 
     if (cpathname != NULL)
@@ -3949,6 +3954,9 @@ imp_cache_from_source(PyObject *self, PyObject *args, PyObject *kws)
         return NULL;
     }
 
+    if (PyUnicode_READY(pathname) < 0)
+        return NULL;
+
     cpathname = make_compiled_pathname(pathname, debug);
     Py_DECREF(pathname);