diff options
author | Andreas Schneider <asn@samba.org> | 2015-01-22 10:27:59 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2015-01-22 15:36:05 +0100 |
commit | 0cb9b28acb7008cd30c6de3add9876eb5607a5a6 (patch) | |
tree | 54626382f19e2035a999d021710c69dc8f096bb7 /source3/pam_smbpass/pam_smb_auth.c | |
parent | db63e4887c81c3e458194004353d7ef92c67b393 (diff) | |
download | samba-0cb9b28acb7008cd30c6de3add9876eb5607a5a6.tar.gz samba-0cb9b28acb7008cd30c6de3add9876eb5607a5a6.tar.xz samba-0cb9b28acb7008cd30c6de3add9876eb5607a5a6.zip |
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 <asn@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Diffstat (limited to 'source3/pam_smbpass/pam_smb_auth.c')
-rw-r--r-- | source3/pam_smbpass/pam_smb_auth.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/source3/pam_smbpass/pam_smb_auth.c b/source3/pam_smbpass/pam_smb_auth.c index ac5ef3f21c..1b8ae5eb85 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; \ |