From: Andreas Schneider Date: Thu, 22 Jan 2015 09:27:59 +0000 (+0100) Subject: s3-pam_smbpass: Fix memory leak in pam_sm_authenticate(). X-Git-Tag: samba-4.2.0rc5~48 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f45d30c1dd8003a23d6e9a6b4f6db296c5490c6b;p=thirdparty%2Fsamba.git 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) Autobuild-User(v4-2-test): Karolin Seeger Autobuild-Date(v4-2-test): Sun Jan 25 00:37:52 CET 2015 on sn-devel-104 --- diff --git a/source3/pam_smbpass/pam_smb_auth.c b/source3/pam_smbpass/pam_smb_auth.c index ac5ef3f21c5..1b8ae5eb85a 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; \