From: Victor Stinner Date: Thu, 15 Jun 2017 13:30:40 +0000 (+0200) Subject: bpo-30602: Fix refleak in os.spawnv() (#2212) X-Git-Tag: v3.7.0a1~585 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8acb4cf2b3436652568d7a70228b166316181466;p=thirdparty%2FPython%2Fcpython.git bpo-30602: Fix refleak in os.spawnv() (#2212) When os.spawnv() fails while handling arguments, free correctly argvlist: pass lastarg+1 rather than lastarg to free_string_array() to also free the first item. --- diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 470702981308..ff03b8dcdb02 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -5165,7 +5165,7 @@ os_spawnv_impl(PyObject *module, int mode, path_t *path, PyObject *argv) return NULL; } if (i == 0 && !argvlist[0][0]) { - free_string_array(argvlist, i); + free_string_array(argvlist, i + 1); PyErr_SetString( PyExc_ValueError, "spawnv() arg 2 first element cannot be empty");