Fixed two memory leaks in make_filename() in zipimport.c. The allocated buffer wasn't cleaned up in two error cases. CID 486832

This commit is contained in:
Christian Heimes 2012-09-10 02:00:34 +02:00
parent 15b6885fe0
commit 1b5c76a283

View file

@ -236,12 +236,16 @@ make_filename(PyObject *prefix, PyObject *name)
return NULL;
}
if (!PyUnicode_AsUCS4(prefix, p, len, 0))
if (!PyUnicode_AsUCS4(prefix, p, len, 0)) {
PyMem_Free(buf);
return NULL;
}
p += PyUnicode_GET_LENGTH(prefix);
len -= PyUnicode_GET_LENGTH(prefix);
if (!PyUnicode_AsUCS4(name, p, len, 1))
if (!PyUnicode_AsUCS4(name, p, len, 1)) {
PyMem_Free(buf);
return NULL;
}
for (; *p; p++) {
if (*p == '.')
*p = SEP;