summaryrefslogtreecommitdiffstats
path: root/source3/pam_smbpass/pam_smb_auth.c
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2015-01-22 10:27:59 +0100
committerAndreas Schneider <asn@cryptomilk.org>2015-01-22 15:36:05 +0100
commit0cb9b28acb7008cd30c6de3add9876eb5607a5a6 (patch)
tree54626382f19e2035a999d021710c69dc8f096bb7 /source3/pam_smbpass/pam_smb_auth.c
parentdb63e4887c81c3e458194004353d7ef92c67b393 (diff)
downloadsamba-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.c11
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; \