commit c9148666f5d9dd59804a3d29c59207ef067f7093 Author: Dmitry V. Levin ldv@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@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);
linux-pam-commits@lists.fedorahosted.org