commit c9148666f5d9dd59804a3d29c59207ef067f7093
Author: Dmitry V. Levin <ldv(a)altlinux.org>
Date: Mon Dec 26 18:10:29 2011 +0000
pam_start: fix memory leak on error path
* libpam/pam_start.c (pam_start): If _pam_make_env() or
_pam_init_handlers() returned an error, release the memory allocated
for pam_conv structure.
Patch-by: cancel <suntsu(a)yandex.ru>.
libpam/pam_start.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
---
diff --git a/libpam/pam_start.c b/libpam/pam_start.c
index b7cd771..328416d 100644
--- a/libpam/pam_start.c
+++ b/libpam/pam_start.c
@@ -111,6 +111,7 @@ int pam_start (
(*pamh)->data = NULL;
if ( _pam_make_env(*pamh) != PAM_SUCCESS ) {
pam_syslog(*pamh,LOG_ERR,"pam_start: failed to initialize environment");
+ _pam_drop((*pamh)->pam_conversation);
_pam_drop((*pamh)->service_name);
_pam_drop((*pamh)->user);
_pam_drop(*pamh);
@@ -127,6 +128,7 @@ int pam_start (
if ( _pam_init_handlers(*pamh) != PAM_SUCCESS ) {
pam_syslog(*pamh, LOG_ERR, "pam_start: failed to initialize handlers");
_pam_drop_env(*pamh); /* purge the environment */
+ _pam_drop((*pamh)->pam_conversation);
_pam_drop((*pamh)->service_name);
_pam_drop((*pamh)->user);
_pam_drop(*pamh);
Show replies by date