From 84eada2f7fc1b9039f783653c592e52f5ccab48f Mon Sep 17 00:00:00 2001 From: Jouke Witteveen Date: Thu, 7 Jul 2016 12:41:52 +0200 Subject: [PATCH] execute: Do not alter call-by-ref parameter on failure Prevent free from being called on (a part of) the call-by-reference variable env when setup_pam fails. --- src/core/execute.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/execute.c b/src/core/execute.c index 1a7620b..8c487b3 100644 --- a/src/core/execute.c +++ b/src/core/execute.c @@ -835,7 +835,7 @@ static int setup_pam( pam_handle_t *handle = NULL; sigset_t old_ss; int pam_code = PAM_SUCCESS, r; - char **e = NULL; + char **nv, **e = NULL; bool close_session = false; pid_t pam_pid = 0, parent_pid; int flags = 0; @@ -870,8 +870,8 @@ static int setup_pam( goto fail; } - STRV_FOREACH(e, *env) { - pam_code = pam_putenv(handle, *e); + STRV_FOREACH(nv, *env) { + pam_code = pam_putenv(handle, *nv); if (pam_code != PAM_SUCCESS) goto fail; } -- 2.7.4