svn commit: samba r20206 - in branches: SAMBA_3_0/source/nsswitch SAMBA_3_0_24/source/nsswitch

jra at samba.org jra at samba.org
Sat Dec 16 01:32:59 GMT 2006


Author: jra
Date: 2006-12-16 01:32:57 +0000 (Sat, 16 Dec 2006)
New Revision: 20206

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20206

Log:
Start cleaning up the talloc_ctx mess.
child->mem_ctx isn't actually used for
anything, so remove it.
Jeremy.

Modified:
   branches/SAMBA_3_0/source/nsswitch/winbindd.h
   branches/SAMBA_3_0/source/nsswitch/winbindd_async.c
   branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c
   branches/SAMBA_3_0/source/nsswitch/winbindd_dual.c
   branches/SAMBA_3_0_24/source/nsswitch/winbindd.h
   branches/SAMBA_3_0_24/source/nsswitch/winbindd_async.c
   branches/SAMBA_3_0_24/source/nsswitch/winbindd_cm.c
   branches/SAMBA_3_0_24/source/nsswitch/winbindd_dual.c


Changeset:
Modified: branches/SAMBA_3_0/source/nsswitch/winbindd.h
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd.h	2006-12-16 01:24:43 UTC (rev 20205)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd.h	2006-12-16 01:32:57 UTC (rev 20206)
@@ -141,7 +141,6 @@
 	struct winbindd_domain *domain;
 	pstring logfilename;
 
-	TALLOC_CTX *mem_ctx;
 	struct fd_event event;
 	struct timed_event *lockout_policy_event;
 	struct winbindd_async_request *requests;

Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_async.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd_async.c	2006-12-16 01:24:43 UTC (rev 20205)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd_async.c	2006-12-16 01:32:57 UTC (rev 20206)
@@ -996,6 +996,9 @@
 
 	if (result != NULL) {
 		state->response.extra_data.data = SMB_STRDUP(result);
+		if (!state->response.extra_data.data) {
+			return WINBINDD_ERROR;
+		}
 		state->response.length += len+1;
 	}
 

Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c	2006-12-16 01:24:43 UTC (rev 20205)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c	2006-12-16 01:32:57 UTC (rev 20206)
@@ -520,6 +520,7 @@
 
 	result = cm_connect_netlogon(our_domain, &netlogon_pipe);
 	if (!NT_STATUS_IS_OK(result)) {
+		talloc_destroy(mem_ctx);
 		return False;
 	}
 
@@ -1264,10 +1265,12 @@
 
 			if (!add_sockaddr_to_array(mem_ctx, domain->dcaddr.sin_addr, 445, &addrs, &num_addrs)) {
 				set_domain_offline(domain);
+				talloc_destroy(mem_ctx);
 				return NT_STATUS_NO_MEMORY;
 			}
 			if (!add_sockaddr_to_array(mem_ctx, domain->dcaddr.sin_addr, 139, &addrs, &num_addrs)) {
 				set_domain_offline(domain);
+				talloc_destroy(mem_ctx);
 				return NT_STATUS_NO_MEMORY;
 			}
 

Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_dual.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd_dual.c	2006-12-16 01:24:43 UTC (rev 20205)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd_dual.c	2006-12-16 01:32:57 UTC (rev 20206)
@@ -238,7 +238,6 @@
 			  sizeof(*request->request),
 			  async_main_request_sent, request);
 
-	talloc_destroy(child->mem_ctx);
 	return;
 }
 
@@ -599,7 +598,7 @@
 {
 	struct winbindd_child *child =
 		(struct winbindd_child *)private_data;
-
+	TALLOC_CTX *mem_ctx = NULL;
 	struct winbindd_methods *methods;
 	SAM_UNK_INFO_12 lockout_policy;
 	NTSTATUS result;
@@ -612,13 +611,21 @@
 
 	methods = child->domain->methods;
 
-	result = methods->lockout_policy(child->domain, child->mem_ctx, &lockout_policy);
+	mem_ctx = talloc_init("account_lockout_policy_handler ctx");
+	if (!mem_ctx) {
+		result = NT_STATUS_NO_MEMORY;
+	} else {
+		result = methods->lockout_policy(child->domain, mem_ctx, &lockout_policy);
+	}
+
+	talloc_destroy(mem_ctx);
+
 	if (!NT_STATUS_IS_OK(result)) {
-		DEBUG(10,("account_lockout_policy_handler: failed to call lockout_policy\n"));
-		return;
+		DEBUG(10,("account_lockout_policy_handler: lockout_policy failed error %s\n",
+			 nt_errstr(result)));
 	}
 
-	child->lockout_policy_event = add_timed_event(child->mem_ctx, 
+	child->lockout_policy_event = add_timed_event(NULL,
 						      timeval_current_ofs(3600, 0),
 						      "account_lockout_policy_handler",
 						      account_lockout_policy_handler,
@@ -828,15 +835,10 @@
 	/* The child is ok with online/offline messages now. */
 	message_unblock();
 
-	child->mem_ctx = talloc_init("child_mem_ctx");
-	if (child->mem_ctx == NULL) {
-		return False;
-	}
-
 	if (child->domain != NULL && lp_winbind_offline_logon()) {
 		/* We might be in the idmap child...*/
 		child->lockout_policy_event = add_timed_event(
-			child->mem_ctx, timeval_zero(),
+			NULL, timeval_zero(),
 			"account_lockout_policy_handler",
 			account_lockout_policy_handler,
 			child);

Modified: branches/SAMBA_3_0_24/source/nsswitch/winbindd.h
===================================================================
--- branches/SAMBA_3_0_24/source/nsswitch/winbindd.h	2006-12-16 01:24:43 UTC (rev 20205)
+++ branches/SAMBA_3_0_24/source/nsswitch/winbindd.h	2006-12-16 01:32:57 UTC (rev 20206)
@@ -151,7 +151,6 @@
 	struct winbindd_domain *domain;
 	pstring logfilename;
 
-	TALLOC_CTX *mem_ctx;
 	struct fd_event event;
 	struct timed_event *lockout_policy_event;
 	struct winbindd_async_request *requests;

Modified: branches/SAMBA_3_0_24/source/nsswitch/winbindd_async.c
===================================================================
--- branches/SAMBA_3_0_24/source/nsswitch/winbindd_async.c	2006-12-16 01:24:43 UTC (rev 20205)
+++ branches/SAMBA_3_0_24/source/nsswitch/winbindd_async.c	2006-12-16 01:32:57 UTC (rev 20206)
@@ -857,6 +857,9 @@
 
 	if (result != NULL) {
 		state->response.extra_data.data = SMB_STRDUP(result);
+		if (!state->response.extra_data.data) {
+			return WINBINDD_ERROR;
+		}
 		state->response.length += len+1;
 	}
 

Modified: branches/SAMBA_3_0_24/source/nsswitch/winbindd_cm.c
===================================================================
--- branches/SAMBA_3_0_24/source/nsswitch/winbindd_cm.c	2006-12-16 01:24:43 UTC (rev 20205)
+++ branches/SAMBA_3_0_24/source/nsswitch/winbindd_cm.c	2006-12-16 01:32:57 UTC (rev 20206)
@@ -520,6 +520,7 @@
 
 	result = cm_connect_netlogon(our_domain, &netlogon_pipe);
 	if (!NT_STATUS_IS_OK(result)) {
+		talloc_destroy(mem_ctx);
 		return False;
 	}
 
@@ -1264,10 +1265,12 @@
 
 			if (!add_sockaddr_to_array(mem_ctx, domain->dcaddr.sin_addr, 445, &addrs, &num_addrs)) {
 				set_domain_offline(domain);
+				talloc_destroy(mem_ctx);
 				return NT_STATUS_NO_MEMORY;
 			}
 			if (!add_sockaddr_to_array(mem_ctx, domain->dcaddr.sin_addr, 139, &addrs, &num_addrs)) {
 				set_domain_offline(domain);
+				talloc_destroy(mem_ctx);
 				return NT_STATUS_NO_MEMORY;
 			}
 

Modified: branches/SAMBA_3_0_24/source/nsswitch/winbindd_dual.c
===================================================================
--- branches/SAMBA_3_0_24/source/nsswitch/winbindd_dual.c	2006-12-16 01:24:43 UTC (rev 20205)
+++ branches/SAMBA_3_0_24/source/nsswitch/winbindd_dual.c	2006-12-16 01:32:57 UTC (rev 20206)
@@ -238,7 +238,6 @@
 			  sizeof(*request->request),
 			  async_main_request_sent, request);
 
-	talloc_destroy(child->mem_ctx);
 	return;
 }
 
@@ -596,7 +595,7 @@
 {
 	struct winbindd_child *child =
 		(struct winbindd_child *)private_data;
-
+	TALLOC_CTX *mem_ctx = NULL;
 	struct winbindd_methods *methods;
 	SAM_UNK_INFO_12 lockout_policy;
 	NTSTATUS result;
@@ -609,13 +608,21 @@
 
 	methods = child->domain->methods;
 
-	result = methods->lockout_policy(child->domain, child->mem_ctx, &lockout_policy);
+	mem_ctx = talloc_init("account_lockout_policy_handler ctx");
+	if (!mem_ctx) {
+		result = NT_STATUS_NO_MEMORY;
+	} else {
+		result = methods->lockout_policy(child->domain, mem_ctx, &lockout_policy);
+	}
+
+	talloc_destroy(mem_ctx);
+
 	if (!NT_STATUS_IS_OK(result)) {
-		DEBUG(10,("account_lockout_policy_handler: failed to call lockout_policy\n"));
-		return;
+		DEBUG(10,("account_lockout_policy_handler: lockout_policy failed error %s\n",
+			 nt_errstr(result)));
 	}
 
-	child->lockout_policy_event = add_timed_event(child->mem_ctx, 
+	child->lockout_policy_event = add_timed_event(NULL,
 						      timeval_current_ofs(3600, 0),
 						      "account_lockout_policy_handler",
 						      account_lockout_policy_handler,
@@ -825,15 +832,10 @@
 	/* The child is ok with online/offline messages now. */
 	message_unblock();
 
-	child->mem_ctx = talloc_init("child_mem_ctx");
-	if (child->mem_ctx == NULL) {
-		return False;
-	}
-
 	if (child->domain != NULL && lp_winbind_offline_logon()) {
 		/* We might be in the idmap child...*/
 		child->lockout_policy_event = add_timed_event(
-			child->mem_ctx, timeval_zero(),
+			NULL, timeval_zero(),
 			"account_lockout_policy_handler",
 			account_lockout_policy_handler,
 			child);



More information about the samba-cvs mailing list