envp_run is dinamically allocated with a malloc, and not freed in the out: return path. This commit fix it.
Signed-off-by: Andrea Claudi <acla...@redhat.com> --- tc/e_bpf.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tc/e_bpf.c b/tc/e_bpf.c index a48393b7..517ee5b3 100644 --- a/tc/e_bpf.c +++ b/tc/e_bpf.c @@ -159,7 +159,9 @@ static int parse_bpf(struct exec_util *eu, int argc, char **argv) envp_run[env_num - 1] = NULL; out: - return execvpe(argv_run[0], argv_run, envp_run); + ret = execvpe(argv_run[0], argv_run, envp_run); + free(envp_run); + return ret; err_free_env: for (--i; i >= env_old; i--) -- 2.30.2