]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3-pam_smbpass: Fix memory leak in pam_sm_authenticate().
authorAndreas Schneider <asn@samba.org>
Thu, 22 Jan 2015 09:27:59 +0000 (10:27 +0100)
committerKarolin Seeger <kseeger@samba.org>
Sat, 24 Jan 2015 23:37:52 +0000 (00:37 +0100)
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>
(cherry picked from commit 0cb9b28acb7008cd30c6de3add9876eb5607a5a6)

Autobuild-User(v4-2-test): Karolin Seeger <kseeger@samba.org>
Autobuild-Date(v4-2-test): Sun Jan 25 00:37:52 CET 2015 on sn-devel-104

source3/pam_smbpass/pam_smb_auth.c

index ac5ef3f21c5156a0f028eb73f482e4668c72cb65..1b8ae5eb85ac59fc0da9951cc051974b5e0c65e8 100644 (file)
 
 #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;                                          \