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.
This commit is contained in:
Victor Stinner 2017-06-15 15:30:40 +02:00 committed by GitHub
parent 7926516ff9
commit 8acb4cf2b3
1 changed files with 1 additions and 1 deletions

View File

@ -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");