]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
(Merge from 3.0)
authorAndrew Bartlett <abartlet@samba.org>
Sun, 23 Nov 2003 00:23:26 +0000 (00:23 +0000)
committerAndrew Bartlett <abartlet@samba.org>
Sun, 23 Nov 2003 00:23:26 +0000 (00:23 +0000)
Patch by emil@disksites.com <Emil Rasamat> to ensure we always always
free() each auth method. (We had relied on the use of talloc() only,
despite providing the free() callback)

Andrew Bartlett

source/auth/auth.c
source/auth/auth_server.c

index 20dccc65924431f974409c8c981a8a080eeb3e97..1b49699fbca5e711f126d2fcfee15c415787292a 100644 (file)
@@ -321,9 +321,20 @@ static NTSTATUS check_ntlm_password(const struct auth_context *auth_context,
 
 static void free_auth_context(struct auth_context **auth_context)
 {
-       if (*auth_context != NULL)
+       auth_methods *auth_method;
+
+       if (*auth_context) {
+               /* Free private data of context's authentication methods */
+               for (auth_method = (*auth_context)->auth_method_list; auth_method; auth_method = auth_method->next) {
+                       if (auth_method->free_private_data) {
+                               auth_method->free_private_data (&auth_method->private_data);
+                               auth_method->private_data = NULL;
+                       }
+               }
+
                talloc_destroy((*auth_context)->mem_ctx);
-       *auth_context = NULL;
+               *auth_context = NULL;
+       }
 }
 
 /***************************************************************************
index b57293943c039346b24053419d1d9e41b3fbeaaa..41adc2178416eee813356d2da5de5d4d6da5c077 100644 (file)
@@ -143,8 +143,10 @@ static void free_server_private_data(void **private_data_pointer)
 {
        struct cli_state **cli = (struct cli_state **)private_data_pointer;
        if (*cli && (*cli)->initialised) {
+               DEBUG(10, ("Shutting down smbserver connection\n"));
                cli_shutdown(*cli);
        }
+       *private_data_pointer = NULL;
 }
 
 /****************************************************************************