From: Petr Vaganov Date: Tue, 23 Sep 2025 14:51:46 +0000 (+0500) Subject: pythonmod: fix HANDLE_LEAK on pythonmod_init X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F1352%2Fhead;p=thirdparty%2Funbound.git pythonmod: fix HANDLE_LEAK on pythonmod_init Found by the static analyzer Svace (ISP RAS). Handle 'script_py' is created at pythonmod.c:436 by calling function 'fopen' and lost at pythonmod.c:457,465. Signed-off-by: Petr Vaganov --- diff --git a/pythonmod/pythonmod.c b/pythonmod/pythonmod.c index e231ad079..8cb023a51 100644 --- a/pythonmod/pythonmod.c +++ b/pythonmod/pythonmod.c @@ -454,6 +454,7 @@ int pythonmod_init(struct module_env* env, int id) if(PyDict_SetItemString(pe->data, "script", fname) < 0) { log_err("pythonmod: could not add item to dictionary"); Py_XDECREF(fname); + fclose(script_py); goto python_init_fail; } Py_XDECREF(fname); @@ -462,6 +463,7 @@ int pythonmod_init(struct module_env* env, int id) log_err("pythonmod: could not add mod_env object"); Py_XDECREF(pe->data); /* 2 times, here and on python_init_fail; */ /* on failure the reference is not stolen */ + fclose(script_py); goto python_init_fail; }