summaryrefslogtreecommitdiff
path: root/libpam
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2020-11-04 17:23:09 +0100
committerTomáš Mráz <tmraz@redhat.com>2020-11-04 17:29:43 +0100
commit51318fd423a8ab4456a278ef0aff6ad449aab916 (patch)
treeda9e03811be828df9ddf98817380aa8b26ae31d1 /libpam
parent50ab1eda259ff039922b2774895f09bf0a57e078 (diff)
downloadlinux-pam-git-51318fd423a8ab4456a278ef0aff6ad449aab916.tar.gz
libpam: Fix memory leak on error path in _pam_start_internal()
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'libpam')
-rw-r--r--libpam/pam_start.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libpam/pam_start.c b/libpam/pam_start.c
index 59d06224..99dd0389 100644
--- a/libpam/pam_start.c
+++ b/libpam/pam_start.c
@@ -115,6 +115,7 @@ static int _pam_start_internal (
pam_syslog(*pamh, LOG_CRIT, "pam_start: malloc failed for pam_conv");
_pam_drop((*pamh)->service_name);
_pam_drop((*pamh)->user);
+ _pam_drop((*pamh)->confdir);
_pam_drop(*pamh);
return (PAM_BUF_ERR);
} else {
@@ -128,6 +129,7 @@ static int _pam_start_internal (
_pam_drop((*pamh)->pam_conversation);
_pam_drop((*pamh)->service_name);
_pam_drop((*pamh)->user);
+ _pam_drop((*pamh)->confdir);
_pam_drop(*pamh);
return PAM_ABORT;
}
@@ -145,6 +147,7 @@ static int _pam_start_internal (
_pam_drop((*pamh)->pam_conversation);
_pam_drop((*pamh)->service_name);
_pam_drop((*pamh)->user);
+ _pam_drop((*pamh)->confdir);
_pam_drop(*pamh);
return PAM_ABORT;
}