[SCM] Samba Shared Repository - branch master updated

Matthias Dieter Wallnöfer mdw at samba.org
Sat Nov 6 12:08:01 MDT 2010


The branch, master has been updated
       via  9ff8428 s4:samr RPC server - "dcesrv_samr_RemoveMemberFromForeignDomain"
      from  0980a34 s4:DRS-RPC-DSSYNC: don't try to decrypt secret attributes twice

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


- Log -----------------------------------------------------------------
commit 9ff8428c6f5f965c0811218d0f202bdceb1f1a0f
Author: Matthias Dieter Wallnöfer <mdw at samba.org>
Date:   Sat Nov 6 18:18:44 2010 +0100

    s4:samr RPC server - "dcesrv_samr_RemoveMemberFromForeignDomain"
    
    - Remove TODO comment: MS-SAMR 3.1.5.8.7 explicitly states:
      "The SamrRemoveMemberFromForeignDomain method removes a member from all
      aliases."
    
    - Remove the search attributes since they aren't strictly needed.
    
    Autobuild-User: Matthias Dieter Wallnöfer <mdw at samba.org>
    Autobuild-Date: Sat Nov  6 18:07:57 UTC 2010 on sn-devel-104

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

Summary of changes:
 source4/rpc_server/samr/dcesrv_samr.c |   18 ++++++------------
 1 files changed, 6 insertions(+), 12 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/rpc_server/samr/dcesrv_samr.c b/source4/rpc_server/samr/dcesrv_samr.c
index dbc9c1e..391bc7f 100644
--- a/source4/rpc_server/samr/dcesrv_samr.c
+++ b/source4/rpc_server/samr/dcesrv_samr.c
@@ -3890,14 +3890,15 @@ static NTSTATUS dcesrv_samr_GetUserPwInfo(struct dcesrv_call_state *dce_call, TA
 /*
   samr_RemoveMemberFromForeignDomain
 */
-static NTSTATUS dcesrv_samr_RemoveMemberFromForeignDomain(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-		       struct samr_RemoveMemberFromForeignDomain *r)
+static NTSTATUS dcesrv_samr_RemoveMemberFromForeignDomain(struct dcesrv_call_state *dce_call,
+							  TALLOC_CTX *mem_ctx,
+							  struct samr_RemoveMemberFromForeignDomain *r)
 {
 	struct dcesrv_handle *h;
 	struct samr_domain_state *d_state;
 	const char *memberdn;
 	struct ldb_message **res;
-	const char * const attrs[3] = { "distinguishedName", "objectSid", NULL };
+	const char *no_attrs[] = { NULL };
 	int i, count;
 
 	DCESRV_PULL_HANDLE(h, r->in.domain_handle, SAMR_HANDLE_DOMAIN);
@@ -3912,11 +3913,8 @@ static NTSTATUS dcesrv_samr_RemoveMemberFromForeignDomain(struct dcesrv_call_sta
 		return NT_STATUS_OK;
 	}
 
-	/* TODO: Does this call only remove alias members, or does it do this
-	 * for domain groups as well? */
-
 	count = samdb_search_domain(d_state->sam_ctx, mem_ctx,
-				    d_state->domain_dn, &res, attrs,
+				    d_state->domain_dn, &res, no_attrs,
 				    d_state->domain_sid,
 				    "(&(member=%s)(objectClass=group)"
 				    "(|(groupType=%d)(groupType=%d)))",
@@ -3935,11 +3933,7 @@ static NTSTATUS dcesrv_samr_RemoveMemberFromForeignDomain(struct dcesrv_call_sta
 			return NT_STATUS_NO_MEMORY;
 		}
 
-		mod->dn = samdb_result_dn(d_state->sam_ctx, mod, res[i], "distinguishedName", NULL);
-		if (mod->dn == NULL) {
-			talloc_free(mod);
-			continue;
-		}
+		mod->dn = res[i]->dn;
 
 		if (samdb_msg_add_delval(d_state->sam_ctx, mem_ctx, mod,
 					 "member", memberdn) != LDB_SUCCESS)


-- 
Samba Shared Repository


More information about the samba-cvs mailing list