From: Just van Rossum Date: Mon, 3 Mar 2003 19:07:13 +0000 (+0000) Subject: plugged leak noted by nnorwitz: the 'et' format returns allocated memory X-Git-Tag: v2.3c1~1602 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2fe07fda2d2d6f88e99a83ed7c625e80489a6f4d;p=python plugged leak noted by nnorwitz: the 'et' format returns allocated memory --- diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index d9033f6c5a..cc922725d7 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -1771,7 +1771,7 @@ posix_listdir(PyObject *self, PyObject *args) return d; #else - char *name; + char *name = NULL; PyObject *d, *v; DIR *dirp; struct dirent *ep; @@ -1784,10 +1784,11 @@ posix_listdir(PyObject *self, PyObject *args) if (!PyArg_ParseTuple(args, "et:listdir", Py_FileSystemDefaultEncoding, &name)) return NULL; if ((dirp = opendir(name)) == NULL) { - return posix_error_with_filename(name); + return posix_error_with_allocated_filename(name); } if ((d = PyList_New(0)) == NULL) { closedir(dirp); + PyMem_Free(name); return NULL; } while ((ep = readdir(dirp)) != NULL) { @@ -1826,6 +1827,7 @@ posix_listdir(PyObject *self, PyObject *args) Py_DECREF(v); } closedir(dirp); + PyMem_Free(name); return d;