Fix more free twice bugs.
authorJeremy Allison <jra@samba.org>
Mon, 23 Apr 2001 06:22:02 +0000 (06:22 +0000)
committerJeremy Allison <jra@samba.org>
Mon, 23 Apr 2001 06:22:02 +0000 (06:22 +0000)
Jeremy.
(This used to be commit 4db22afeed659a871a4a1f719d5fa1f2df07e24d)

source3/auth/pampass.c
source3/passdb/pampass.c

index 3335ed5551ce086705055361a1f6a943fa8d4ccd..f91f472603cc73844b987d1f76a78e06e3f5bc65 100644 (file)
@@ -153,11 +153,13 @@ static BOOL smb_pam_start(pam_handle_t **pamh, char *user, char *rhost)
 {
        int pam_error;
 
+       *pamh = (pam_handle_t *)NULL;
+
        DEBUG(4,("PAM: Init user: %s\n", user));
 
        pam_error = pam_start("samba", user, &smb_pam_conversation, pamh);
        if( !smb_pam_error_handler(*pamh, pam_error, "Init Failed", 0)) {
-               smb_pam_end(*pamh);
+               *pamh = (pam_handle_t *)NULL;
                return False;
        }
 
@@ -172,6 +174,7 @@ static BOOL smb_pam_start(pam_handle_t **pamh, char *user, char *rhost)
        pam_error = pam_set_item(*pamh, PAM_RHOST, rhost);
        if(!smb_pam_error_handler(*pamh, pam_error, "set rhost failed", 0)) {
                smb_pam_end(*pamh);
+               *pamh = (pam_handle_t *)NULL;
                return False;
        }
 #endif
@@ -180,6 +183,7 @@ static BOOL smb_pam_start(pam_handle_t **pamh, char *user, char *rhost)
        pam_error = pam_set_item(*pamh, PAM_TTY, "samba");
        if (!smb_pam_error_handler(*pamh, pam_error, "set tty failed", 0)) {
                smb_pam_end(*pamh);
+               *pamh = (pam_handle_t *)NULL;
                return False;
        }
 #endif
@@ -358,7 +362,6 @@ BOOL smb_pam_session(BOOL flag, const char *in_user, char *tty, char *rhost)
        }
 
        if (!smb_pam_start(&pamh, user, rhost)) {
-               smb_pam_end(pamh);
                return False;
        }
 
index 3335ed5551ce086705055361a1f6a943fa8d4ccd..f91f472603cc73844b987d1f76a78e06e3f5bc65 100644 (file)
@@ -153,11 +153,13 @@ static BOOL smb_pam_start(pam_handle_t **pamh, char *user, char *rhost)
 {
        int pam_error;
 
+       *pamh = (pam_handle_t *)NULL;
+
        DEBUG(4,("PAM: Init user: %s\n", user));
 
        pam_error = pam_start("samba", user, &smb_pam_conversation, pamh);
        if( !smb_pam_error_handler(*pamh, pam_error, "Init Failed", 0)) {
-               smb_pam_end(*pamh);
+               *pamh = (pam_handle_t *)NULL;
                return False;
        }
 
@@ -172,6 +174,7 @@ static BOOL smb_pam_start(pam_handle_t **pamh, char *user, char *rhost)
        pam_error = pam_set_item(*pamh, PAM_RHOST, rhost);
        if(!smb_pam_error_handler(*pamh, pam_error, "set rhost failed", 0)) {
                smb_pam_end(*pamh);
+               *pamh = (pam_handle_t *)NULL;
                return False;
        }
 #endif
@@ -180,6 +183,7 @@ static BOOL smb_pam_start(pam_handle_t **pamh, char *user, char *rhost)
        pam_error = pam_set_item(*pamh, PAM_TTY, "samba");
        if (!smb_pam_error_handler(*pamh, pam_error, "set tty failed", 0)) {
                smb_pam_end(*pamh);
+               *pamh = (pam_handle_t *)NULL;
                return False;
        }
 #endif
@@ -358,7 +362,6 @@ BOOL smb_pam_session(BOOL flag, const char *in_user, char *tty, char *rhost)
        }
 
        if (!smb_pam_start(&pamh, user, rhost)) {
-               smb_pam_end(pamh);
                return False;
        }