From 866425bcb19e04f793dca639d14939ca72bf25bc Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Thu, 22 Jan 2015 10:27:59 +0100 Subject: [PATCH] s3-pam_smbpass: Fix memory leak in pam_sm_authenticate(). BUG: https://bugzilla.samba.org/show_bug.cgi?id=11066 Signed-off-by: Andreas Schneider Reviewed-by: Volker Lendecke (cherry picked from commit 0cb9b28acb7008cd30c6de3add9876eb5607a5a6) --- source3/pam_smbpass/pam_smb_auth.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/source3/pam_smbpass/pam_smb_auth.c b/source3/pam_smbpass/pam_smb_auth.c index ac5ef3f..1b8ae5e 100644 --- a/source3/pam_smbpass/pam_smb_auth.c +++ b/source3/pam_smbpass/pam_smb_auth.c @@ -41,14 +41,21 @@ #include "support.h" +static void ret_data_cleanup(pam_handle_t *pamh, void *data, int error_status) +{ + free(data); +} + #define AUTH_RETURN \ do { \ /* Restore application signal handler */ \ CatchSignal(SIGPIPE, oldsig_handler); \ if(ret_data) { \ *ret_data = retval; \ - pam_set_data( pamh, "smb_setcred_return" \ - , (void *) ret_data, NULL ); \ + pam_set_data(pamh, \ + "smb_setcred_return", \ + (void *)ret_data, \ + ret_data_cleanup); \ } \ TALLOC_FREE(frame); \ return retval; \ -- 2.2.2