[SCM] Samba Shared Repository - branch master updated

Günther Deschner gd at samba.org
Mon May 31 13:28:11 MDT 2010


The branch, master has been updated
       via  fca69a9... s3-netlogon: Fix crash bug in _netr_NetrEnumerateTrustedDomains().
      from  cf72740... Revert "ldb: Remove Samba-specific symbols."

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit fca69a9e2f19d7f54cee6ace17adf57372cea52e
Author: Günther Deschner <gd at samba.org>
Date:   Mon May 31 21:26:30 2010 +0200

    s3-netlogon: Fix crash bug in _netr_NetrEnumerateTrustedDomains().
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source3/rpc_server/srv_netlog_nt.c |   29 +++++++++++------------------
 1 files changed, 11 insertions(+), 18 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/rpc_server/srv_netlog_nt.c b/source3/rpc_server/srv_netlog_nt.c
index 4bd176c..cccd0d5 100644
--- a/source3/rpc_server/srv_netlog_nt.c
+++ b/source3/rpc_server/srv_netlog_nt.c
@@ -412,12 +412,6 @@ NTSTATUS _netr_NetrEnumerateTrustedDomains(pipes_struct *p,
 		return status;
 	}
 
-	trusted_domains = talloc_zero_array(p->mem_ctx, const char *, num_domains);
-	if (!trusted_domains) {
-		status = NT_STATUS_NO_MEMORY;
-		goto out;
-	}
-
 	status = rpccli_lsa_open_policy2(cli, p->mem_ctx,
 					 true,
 					 LSA_POLICY_VIEW_LOCAL_INFORMATION,
@@ -426,10 +420,7 @@ NTSTATUS _netr_NetrEnumerateTrustedDomains(pipes_struct *p,
 		goto out;
 	}
 
-	status = STATUS_MORE_ENTRIES;
-
-	while (NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES)) {
-
+	do {
 		/* Lookup list of trusted domains */
 
 		status = rpccli_lsa_EnumTrustDom(cli, p->mem_ctx,
@@ -450,16 +441,18 @@ NTSTATUS _netr_NetrEnumerateTrustedDomains(pipes_struct *p,
 				goto out;
 			}
 		}
-	}
+	} while (NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES));
 
-	/* multi sz terminate */
-	trusted_domains = talloc_realloc(p->mem_ctx, trusted_domains, const char *, num_domains + 1);
-	if (trusted_domains == NULL) {
-		status = NT_STATUS_NO_MEMORY;
-		goto out;
-	}
+	if (num_domains > 0) {
+		/* multi sz terminate */
+		trusted_domains = talloc_realloc(p->mem_ctx, trusted_domains, const char *, num_domains + 1);
+		if (trusted_domains == NULL) {
+			status = NT_STATUS_NO_MEMORY;
+			goto out;
+		}
 
-	trusted_domains[num_domains+1] = NULL;
+		trusted_domains[num_domains] = NULL;
+	}
 
 	if (!push_reg_multi_sz(trusted_domains, &blob, trusted_domains)) {
 		TALLOC_FREE(trusted_domains);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list