[SCM] Samba Shared Repository - branch master updated

Simo Sorce idra at samba.org
Fri Feb 19 16:32:27 MST 2010


The branch, master has been updated
       via  da1970c... s4:lsa open trusted domain also with dns name
       via  c8a3c01... remove trailing tabs and spaces
      from  0055e33... Second part of fix for bug #7159 - client rpc_transport doesn't cope with bad server data returns.

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


- Log -----------------------------------------------------------------
commit da1970c0ff4cd3556102e9357b2e0cf65728c8d6
Author: Simo Sorce <idra at samba.org>
Date:   Fri Feb 19 18:09:48 2010 -0500

    s4:lsa open trusted domain also with dns name
    
    When searching for a trusted domain object to open, search also the DNS Name
    attributes for a match. W2K8R2 uses the DNS domain if available.

commit c8a3c015850b91c991da10d388ec33ea02c5e155
Author: Simo Sorce <idra at samba.org>
Date:   Fri Feb 19 17:46:42 2010 -0500

    remove trailing tabs and spaces

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

Summary of changes:
 source4/rpc_server/lsa/dcesrv_lsa.c |   26 +++++++++++++++-----------
 1 files changed, 15 insertions(+), 11 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/rpc_server/lsa/dcesrv_lsa.c b/source4/rpc_server/lsa/dcesrv_lsa.c
index 53526ce..45fe08e 100644
--- a/source4/rpc_server/lsa/dcesrv_lsa.c
+++ b/source4/rpc_server/lsa/dcesrv_lsa.c
@@ -1253,7 +1253,7 @@ static NTSTATUS dcesrv_lsa_OpenTrustedDomainByName(struct dcesrv_call_state *dce
 					    struct lsa_OpenTrustedDomainByName *r)
 {
 	struct dcesrv_handle *policy_handle;
-	
+
 	struct lsa_policy_state *policy_state;
 	struct lsa_trusted_domain_state *trusted_domain_state;
 	struct dcesrv_handle *handle;
@@ -1261,7 +1261,7 @@ static NTSTATUS dcesrv_lsa_OpenTrustedDomainByName(struct dcesrv_call_state *dce
 	const char *attrs[] = {
 		NULL
 	};
-
+	char *td_name;
 	int ret;
 
 	DCESRV_PULL_HANDLE(policy_handle, r->in.handle, LSA_HANDLE_POLICY);
@@ -1271,7 +1271,7 @@ static NTSTATUS dcesrv_lsa_OpenTrustedDomainByName(struct dcesrv_call_state *dce
 	if (!r->in.name.string) {
 		return NT_STATUS_INVALID_PARAMETER;
 	}
-	
+
 	trusted_domain_state = talloc_zero(mem_ctx, struct lsa_trusted_domain_state);
 	if (!trusted_domain_state) {
 		return NT_STATUS_NO_MEMORY;
@@ -1279,34 +1279,38 @@ static NTSTATUS dcesrv_lsa_OpenTrustedDomainByName(struct dcesrv_call_state *dce
 	trusted_domain_state->policy = policy_state;
 
 	/* search for the trusted_domain record */
+	td_name = ldb_binary_encode_string(mem_ctx, r->in.name.string);
 	ret = gendb_search(trusted_domain_state->policy->sam_ldb,
 			   mem_ctx, policy_state->system_dn, &msgs, attrs,
-			   "(&(flatname=%s)(objectclass=trustedDomain))", 
-			   ldb_binary_encode_string(mem_ctx, r->in.name.string));
+			   "(&(|(flatname=%s)(cn=%s)(trustPartner=%s))"
+			     "(objectclass=trustedDomain))",
+			   td_name, td_name, td_name);
 	if (ret == 0) {
 		return NT_STATUS_OBJECT_NAME_NOT_FOUND;
 	}
-	
+
 	if (ret != 1) {
 		DEBUG(0,("Found %d records matching DN %s\n", ret,
 			 ldb_dn_get_linearized(policy_state->system_dn)));
 		return NT_STATUS_INTERNAL_DB_CORRUPTION;
 	}
 
+        /* TODO: perform access checks */
+
 	trusted_domain_state->trusted_domain_dn = talloc_reference(trusted_domain_state, msgs[0]->dn);
-	
+
 	handle = dcesrv_handle_new(dce_call->context, LSA_HANDLE_TRUSTED_DOMAIN);
 	if (!handle) {
 		return NT_STATUS_NO_MEMORY;
 	}
-	
+
 	handle->data = talloc_steal(handle, trusted_domain_state);
-	
+
 	trusted_domain_state->access_mask = r->in.access_mask;
 	trusted_domain_state->policy = talloc_reference(trusted_domain_state, policy_state);
-	
+
 	*r->out.trustdom_handle = handle->wire_handle;
-	
+
 	return NT_STATUS_OK;
 }
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list