Add ready checks for make_compiled_pathname.

This commit is contained in:
Martin v. Löwis 2011-10-23 17:35:46 +02:00
parent 2db72863fb
commit 30260a7fe3

View file

@ -929,7 +929,10 @@ rightmost_sep_obj(PyObject* o)
for the compiled file, or NULL if there's no space in the buffer. for the compiled file, or NULL if there's no space in the buffer.
Doesn't set an exception. 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* static PyObject*
make_compiled_pathname(PyObject *pathstr, int debug) make_compiled_pathname(PyObject *pathstr, int debug)
@ -1458,6 +1461,8 @@ load_source_module(PyObject *name, PyObject *pathname, FILE *fp)
goto error; goto error;
} }
#endif #endif
if (PyUnicode_READY(pathname) < 0)
return NULL;
cpathname = make_compiled_pathname(pathname, !Py_OptimizeFlag); cpathname = make_compiled_pathname(pathname, !Py_OptimizeFlag);
if (cpathname != NULL) if (cpathname != NULL)
@ -3949,6 +3954,9 @@ imp_cache_from_source(PyObject *self, PyObject *args, PyObject *kws)
return NULL; return NULL;
} }
if (PyUnicode_READY(pathname) < 0)
return NULL;
cpathname = make_compiled_pathname(pathname, debug); cpathname = make_compiled_pathname(pathname, debug);
Py_DECREF(pathname); Py_DECREF(pathname);