Must have been drunk yesterday.
authoridra <idra@0c0555d6-39d7-0310-84fc-f1cc0bd64818>
Fri, 1 Dec 2006 16:13:06 +0000 (16:13 +0000)
committeridra <idra@0c0555d6-39d7-0310-84fc-f1cc0bd64818>
Fri, 1 Dec 2006 16:13:06 +0000 (16:13 +0000)
Freeing memctx is all we need, fix double free stupidity

git-svn-id: svn+ssh://svn.samba.org/data/svn/samba/branches/SAMBA_3_0@19984 0c0555d6-39d7-0310-84fc-f1cc0bd64818

source/smbd/sesssetup.c

index 11c5e9b..0cf6692 100644 (file)
@@ -302,8 +302,7 @@ static int reply_spnego_kerberos(connection_struct *conn,
                        DEBUG(1, ("PAM account restriction prevents user login\n"));
                        data_blob_free(&ap_rep);
                        data_blob_free(&session_key);
-                       talloc_destroy(mem_ctx);
-                       TALLOC_FREE(pw);
+                       TALLOC_FREE(mem_ctx);
                        return ERROR_NT(nt_status_squash(ret));
                }
        }
@@ -327,7 +326,7 @@ static int reply_spnego_kerberos(connection_struct *conn,
                        SAFE_FREE(client);
                        data_blob_free(&ap_rep);
                        data_blob_free(&session_key);
-                       talloc_destroy(mem_ctx);
+                       TALLOC_FREE(mem_ctx);
                        return ERROR_NT(nt_status_squash(NT_STATUS_LOGON_FAILURE));
                }
        }
@@ -335,6 +334,8 @@ static int reply_spnego_kerberos(connection_struct *conn,
        /* setup the string used by %U */
        
        sub_set_smb_name( real_username );
+C_FR
+C_FREE
        reload_services(True);
 
        if ( map_domainuser_to_guest ) {
@@ -352,7 +353,6 @@ static int reply_spnego_kerberos(connection_struct *conn,
                        data_blob_free(&ap_rep);
                        data_blob_free(&session_key);
                        TALLOC_FREE(mem_ctx);
-                       TALLOC_FREE(pw);
                        return ERROR_NT(nt_status_squash(ret));
                }
 
@@ -366,7 +366,6 @@ static int reply_spnego_kerberos(connection_struct *conn,
                        data_blob_free(&ap_rep);
                        data_blob_free(&session_key);
                        TALLOC_FREE(mem_ctx);
-                       TALLOC_FREE(pw);
                        return ERROR_NT(nt_status_squash(ret));
                }
 
@@ -390,7 +389,6 @@ static int reply_spnego_kerberos(connection_struct *conn,
                        SAFE_FREE(client);
                        data_blob_free(&ap_rep);
                        data_blob_free(&session_key);
-                       TALLOC_FREE(pw);
                        TALLOC_FREE( mem_ctx );
                        TALLOC_FREE( server_info );
                        return ERROR_NT(nt_status_squash(ret));
@@ -435,7 +433,6 @@ static int reply_spnego_kerberos(connection_struct *conn,
        data_blob_free(&ap_rep_wrapped);
        data_blob_free(&response);
        TALLOC_FREE(mem_ctx);
-       TALLOC_FREE(pw);
 
        return -1; /* already replied */
 }