From 8acb4cf2b3436652568d7a70228b166316181466 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 15 Jun 2017 15:30:40 +0200 Subject: [PATCH] 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. --- Modules/posixmodule.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index 47070298130..ff03b8dcdb0 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");