[SCM] Samba Shared Repository - branch v3-6-test updated

Karolin Seeger kseeger at samba.org
Wed Jun 29 12:18:35 MDT 2011


The branch, v3-6-test has been updated
       via  44cfdd9 s3: explicitly pass domain_sid to wbint_LookupRids() (bug #7841)
      from  355ffd8 s3:rpc_server/svcctl: fix valgrind bug in _svcctl_QueryServiceObjectSecurity()

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit 44cfdd92e73d9ecb68b5a0ee1167f9e64c2aebeb
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Jun 27 14:34:39 2011 +0200

    s3: explicitly pass domain_sid to wbint_LookupRids() (bug #7841)
    
    Autobuild-User: Volker Lendecke <vlendec at samba.org>
    Autobuild-Date: Mon Jun 27 18:21:30 CEST 2011 on sn-devel-104
    (cherry picked from commit 0a74caa473f491050bc5f64b6d6956c00088c5cd)

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

Summary of changes:
 source3/librpc/idl/wbint.idl           |    1 +
 source3/winbindd/wb_lookupsids.c       |    2 +-
 source3/winbindd/winbindd_dual_srv.c   |    5 +++--
 source3/winbindd/winbindd_lookuprids.c |   12 ++++++------
 4 files changed, 11 insertions(+), 9 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/librpc/idl/wbint.idl b/source3/librpc/idl/wbint.idl
index 5f7e9bf..cb8a4e4 100644
--- a/source3/librpc/idl/wbint.idl
+++ b/source3/librpc/idl/wbint.idl
@@ -164,6 +164,7 @@ interface wbint
 	);
 
     NTSTATUS wbint_LookupRids(
+	[in] dom_sid *domain_sid,
 	[in] wbint_RidArray *rids,
 	[out,string,charset(UTF8)] char **domain_name,
 	[out] wbint_Principals *names
diff --git a/source3/winbindd/wb_lookupsids.c b/source3/winbindd/wb_lookupsids.c
index bf2ddb3..cdca7c7 100644
--- a/source3/winbindd/wb_lookupsids.c
+++ b/source3/winbindd/wb_lookupsids.c
@@ -198,7 +198,7 @@ static bool wb_lookupsids_next(struct tevent_req *req,
 			}
 			subreq = dcerpc_wbint_LookupRids_send(
 				state, state->ev, dom_child_handle(d->domain),
-				&state->rids, &state->domain_name,
+				&d->sid, &state->rids, &state->domain_name,
 				&state->rid_names);
 			if (tevent_req_nomem(subreq, req)) {
 				return false;
diff --git a/source3/winbindd/winbindd_dual_srv.c b/source3/winbindd/winbindd_dual_srv.c
index f8316ce..70bee18 100644
--- a/source3/winbindd/winbindd_dual_srv.c
+++ b/source3/winbindd/winbindd_dual_srv.c
@@ -548,7 +548,7 @@ NTSTATUS _wbint_LookupRids(struct pipes_struct *p, struct wbint_LookupRids *r)
 	}
 
 	status = domain->methods->rids_to_names(
-		domain, talloc_tos(), &domain->sid, r->in.rids->rids,
+		domain, talloc_tos(), r->in.domain_sid, r->in.rids->rids,
 		r->in.rids->num_rids, &domain_name, &names, &types);
 	reset_cm_connection_on_error(domain, status);
 	if (!NT_STATUS_IS_OK(status)) {
@@ -564,7 +564,8 @@ NTSTATUS _wbint_LookupRids(struct pipes_struct *p, struct wbint_LookupRids *r)
 	}
 
 	for (i=0; i<r->in.rids->num_rids; i++) {
-		sid_compose(&result[i].sid, &domain->sid, r->in.rids->rids[i]);
+		sid_compose(&result[i].sid, r->in.domain_sid,
+			    r->in.rids->rids[i]);
 		result[i].type = types[i];
 		result[i].name = talloc_move(result, &names[i]);
 	}
diff --git a/source3/winbindd/winbindd_lookuprids.c b/source3/winbindd/winbindd_lookuprids.c
index 738adba..e1d7d18 100644
--- a/source3/winbindd/winbindd_lookuprids.c
+++ b/source3/winbindd/winbindd_lookuprids.c
@@ -24,6 +24,7 @@
 
 struct winbindd_lookuprids_state {
 	struct tevent_context *ev;
+	struct dom_sid domain_sid;
 	const char *domain_name;
 	struct wbint_RidArray rids;
 	struct wbint_Principals names;
@@ -42,7 +43,6 @@ struct tevent_req *winbindd_lookuprids_send(TALLOC_CTX *mem_ctx,
 	struct tevent_req *req, *subreq;
 	struct winbindd_lookuprids_state *state;
 	struct winbindd_domain *domain;
-	struct dom_sid sid;
 
 	req = tevent_req_create(mem_ctx, &state,
 				struct winbindd_lookuprids_state);
@@ -56,16 +56,16 @@ struct tevent_req *winbindd_lookuprids_send(TALLOC_CTX *mem_ctx,
 
 	DEBUG(3, ("lookuprids (%s)\n", request->data.sid));
 
-	if (!string_to_sid(&sid, request->data.sid)) {
+	if (!string_to_sid(&state->domain_sid, request->data.sid)) {
 		DEBUG(5, ("%s not a SID\n", request->data.sid));
 		tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
 		return tevent_req_post(req, ev);
 	}
 
-	domain = find_lookup_domain_from_sid(&sid);
+	domain = find_lookup_domain_from_sid(&state->domain_sid);
 	if (domain == NULL) {
 		DEBUG(5, ("Domain for sid %s not found\n",
-			  sid_string_dbg(&sid)));
+			  sid_string_dbg(&state->domain_sid)));
 		tevent_req_nterror(req, NT_STATUS_NO_SUCH_DOMAIN);
 		return tevent_req_post(req, ev);
 	}
@@ -84,8 +84,8 @@ struct tevent_req *winbindd_lookuprids_send(TALLOC_CTX *mem_ctx,
 	}
 
 	subreq = dcerpc_wbint_LookupRids_send(
-		state, ev, dom_child_handle(domain), &state->rids,
-		&state->domain_name, &state->names);
+		state, ev, dom_child_handle(domain), &state->domain_sid,
+		&state->rids, &state->domain_name, &state->names);
 	if (tevent_req_nomem(subreq, req)) {
 		return tevent_req_post(req, ev);
 	}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list