osutil: fix leak of stat in makestat when Py_BuildValue fails

Spotted with cpychecker.
This commit is contained in:
Augie Fackler 2015-01-27 10:14:23 -05:00
parent 7d0895a2f0
commit b15ba92295

View File

@ -288,7 +288,7 @@ static PyObject *makestat(const struct stat *st)
static PyObject *_listdir(char *path, int pathlen, int keepstat, char *skip)
{
PyObject *list, *elem, *stat, *ret = NULL;
PyObject *list, *elem, *stat = NULL, *ret = NULL;
char fullpath[PATH_MAX + 10];
int kind, err;
struct stat st;
@ -369,6 +369,7 @@ static PyObject *_listdir(char *path, int pathlen, int keepstat, char *skip)
elem = Py_BuildValue("si", ent->d_name, kind);
if (!elem)
goto error;
stat = NULL;
PyList_Append(list, elem);
Py_DECREF(elem);
@ -379,6 +380,7 @@ static PyObject *_listdir(char *path, int pathlen, int keepstat, char *skip)
error:
Py_DECREF(list);
Py_XDECREF(stat);
error_list:
closedir(dir);
error_dir: