[SCM] Samba Shared Repository - branch master updated

Günther Deschner gd at samba.org
Thu Oct 7 06:05:01 MDT 2010


The branch, master has been updated
       via  b7683a2 samr: for correctness, rename samr_RidTypeArray to samr_RidAttrArray.
       via  e0b3402 s4-samr: Fix dcesrv_samr_QueryGroupMember.
       via  71ab8f3 s3-samr: fix _samr_QueryGroupMember().
      from  ab31d9a Revert "s4:ldap_server: rewrite to socket layer to use tstream"

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


- Log -----------------------------------------------------------------
commit b7683a2c9d10e34e4d8eed8664ed4c14f71f981f
Author: Günther Deschner <gd at samba.org>
Date:   Thu Oct 7 13:01:29 2010 +0200

    samr: for correctness, rename samr_RidTypeArray to samr_RidAttrArray.
    
    Guenther
    
    Autobuild-User: Günther Deschner <gd at samba.org>
    Autobuild-Date: Thu Oct  7 12:04:32 UTC 2010 on sn-devel-104

commit e0b340247a4f7f0b6506752add0af3df8deb9920
Author: Günther Deschner <gd at samba.org>
Date:   Thu Oct 7 12:45:45 2010 +0200

    s4-samr: Fix dcesrv_samr_QueryGroupMember.
    
    Guenther

commit 71ab8f326b7e73ed888e46452d4c31ea17c69c60
Author: Günther Deschner <gd at samba.org>
Date:   Thu Oct 7 12:45:04 2010 +0200

    s3-samr: fix _samr_QueryGroupMember().
    
    that array contains attributes, not sid types.
    
    Guenther

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

Summary of changes:
 librpc/idl/samr.idl                   |    6 +++---
 source3/lib/netapi/group.c            |    6 +++---
 source3/rpc_server/srv_samr_nt.c      |   13 ++++++++-----
 source3/rpcclient/cmd_samr.c          |    4 ++--
 source3/utils/net_rpc.c               |    4 ++--
 source3/winbindd/winbindd_msrpc.c     |    2 +-
 source3/winbindd/winbindd_rpc.c       |    2 +-
 source4/rpc_server/samr/dcesrv_samr.c |   12 +++++++-----
 source4/torture/rpc/samr.c            |    4 ++--
 source4/torture/rpc/samr_accessmask.c |    2 +-
 10 files changed, 30 insertions(+), 25 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/idl/samr.idl b/librpc/idl/samr.idl
index f54d626..ee9ab79 100644
--- a/librpc/idl/samr.idl
+++ b/librpc/idl/samr.idl
@@ -658,12 +658,12 @@ import "misc.idl", "lsa.idl", "security.idl";
 	typedef struct {
 		uint32 count;
 		[size_is(count)] uint32 *rids;
-		[size_is(count)] uint32 *types;
-	} samr_RidTypeArray;
+		[size_is(count)] samr_GroupAttrs *attributes;
+	} samr_RidAttrArray;
 
 	NTSTATUS samr_QueryGroupMember(
 		[in,ref]  policy_handle *group_handle,
-		[out,ref] samr_RidTypeArray **rids
+		[out,ref] samr_RidAttrArray **rids
 		);
 
 
diff --git a/source3/lib/netapi/group.c b/source3/lib/netapi/group.c
index 9b9d8f0..bf8d166 100644
--- a/source3/lib/netapi/group.c
+++ b/source3/lib/netapi/group.c
@@ -234,7 +234,7 @@ WERROR NetGroupDel_r(struct libnetapi_ctx *ctx,
 	struct samr_Ids rids;
 	struct samr_Ids types;
 	union samr_GroupInfo *info = NULL;
-	struct samr_RidTypeArray *rid_array = NULL;
+	struct samr_RidAttrArray *rid_array = NULL;
 
 	ZERO_STRUCT(connect_handle);
 	ZERO_STRUCT(domain_handle);
@@ -1260,7 +1260,7 @@ WERROR NetGroupGetUsers_r(struct libnetapi_ctx *ctx,
 	struct lsa_String lsa_account_name;
 	struct dom_sid2 *domain_sid = NULL;
 	struct samr_Ids group_rids, name_types;
-	struct samr_RidTypeArray *rid_array = NULL;
+	struct samr_RidAttrArray *rid_array = NULL;
 	struct lsa_Strings names;
 	struct samr_Ids member_types;
 
@@ -1408,7 +1408,7 @@ WERROR NetGroupSetUsers_r(struct libnetapi_ctx *ctx,
 	union samr_GroupInfo *group_info = NULL;
 	struct samr_Ids user_rids, name_types;
 	struct samr_Ids group_rids, group_types;
-	struct samr_RidTypeArray *rid_array = NULL;
+	struct samr_RidAttrArray *rid_array = NULL;
 	struct lsa_String *lsa_names = NULL;
 
 	uint32_t *add_rids = NULL;
diff --git a/source3/rpc_server/srv_samr_nt.c b/source3/rpc_server/srv_samr_nt.c
index bd82a34..c8c5572 100644
--- a/source3/rpc_server/srv_samr_nt.c
+++ b/source3/rpc_server/srv_samr_nt.c
@@ -5500,7 +5500,7 @@ NTSTATUS _samr_QueryGroupMember(struct pipes_struct *p,
 	uint32 *attr=NULL;
 
 	NTSTATUS status;
-	struct samr_RidTypeArray *rids = NULL;
+	struct samr_RidAttrArray *rids = NULL;
 
 	ginfo = policy_handle_find(p, r->in.group_handle,
 				   SAMR_GROUP_ACCESS_GET_MEMBERS, NULL,
@@ -5509,7 +5509,7 @@ NTSTATUS _samr_QueryGroupMember(struct pipes_struct *p,
 		return status;
 	}
 
-	rids = TALLOC_ZERO_P(p->mem_ctx, struct samr_RidTypeArray);
+	rids = TALLOC_ZERO_P(p->mem_ctx, struct samr_RidAttrArray);
 	if (!rids) {
 		return NT_STATUS_NO_MEMORY;
 	}
@@ -5541,11 +5541,14 @@ NTSTATUS _samr_QueryGroupMember(struct pipes_struct *p,
 		attr = NULL;
 	}
 
-	for (i=0; i<num_members; i++)
-		attr[i] = SID_NAME_USER;
+	for (i=0; i<num_members; i++) {
+		attr[i] = SE_GROUP_MANDATORY |
+			  SE_GROUP_ENABLED_BY_DEFAULT |
+			  SE_GROUP_ENABLED;
+	}
 
 	rids->count = num_members;
-	rids->types = attr;
+	rids->attributes = attr;
 	rids->rids = rid;
 
 	*r->out.rids = rids;
diff --git a/source3/rpcclient/cmd_samr.c b/source3/rpcclient/cmd_samr.c
index 17314d2..7730e65 100644
--- a/source3/rpcclient/cmd_samr.c
+++ b/source3/rpcclient/cmd_samr.c
@@ -722,7 +722,7 @@ static NTSTATUS cmd_samr_query_groupmem(struct rpc_pipe_client *cli,
 	uint32 access_mask = MAXIMUM_ALLOWED_ACCESS;
 	int i;
 	unsigned int old_timeout;
-	struct samr_RidTypeArray *rids = NULL;
+	struct samr_RidAttrArray *rids = NULL;
 
 	if ((argc < 2) || (argc > 3)) {
 		printf("Usage: %s rid [access mask]\n", argv[0]);
@@ -774,7 +774,7 @@ static NTSTATUS cmd_samr_query_groupmem(struct rpc_pipe_client *cli,
 
 	for (i = 0; i < rids->count; i++) {
 		printf("\trid:[0x%x] attr:[0x%x]\n", rids->rids[i],
-		       rids->types[i]);
+		       rids->attributes[i]);
 	}
 
 	rpccli_samr_Close(cli, mem_ctx, &group_pol);
diff --git a/source3/utils/net_rpc.c b/source3/utils/net_rpc.c
index 96b3626..7c49645 100644
--- a/source3/utils/net_rpc.c
+++ b/source3/utils/net_rpc.c
@@ -1511,7 +1511,7 @@ static NTSTATUS rpc_group_delete_internals(struct net_context *c,
 	bool group_is_primary = false;
 	NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
 	uint32_t group_rid;
-	struct samr_RidTypeArray *rids = NULL;
+	struct samr_RidAttrArray *rids = NULL;
 	/* char **names; */
 	int i;
 	/* struct samr_RidWithAttribute *user_gids; */
@@ -2512,7 +2512,7 @@ static NTSTATUS rpc_list_group_members(struct net_context *c,
 	struct policy_handle group_pol;
 	uint32 num_members, *group_rids;
 	int i;
-	struct samr_RidTypeArray *rids = NULL;
+	struct samr_RidAttrArray *rids = NULL;
 	struct lsa_Strings names;
 	struct samr_Ids types;
 
diff --git a/source3/winbindd/winbindd_msrpc.c b/source3/winbindd/winbindd_msrpc.c
index 4bfede5..500c279 100644
--- a/source3/winbindd/winbindd_msrpc.c
+++ b/source3/winbindd/winbindd_msrpc.c
@@ -618,7 +618,7 @@ static NTSTATUS msrpc_lookup_groupmem(struct winbindd_domain *domain,
 	unsigned int j, r;
 	struct rpc_pipe_client *cli;
 	unsigned int orig_timeout;
-	struct samr_RidTypeArray *rids = NULL;
+	struct samr_RidAttrArray *rids = NULL;
 
 	DEBUG(3,("msrpc_lookup_groupmem: %s sid=%s\n", domain->name,
 		  sid_string_dbg(group_sid)));
diff --git a/source3/winbindd/winbindd_rpc.c b/source3/winbindd/winbindd_rpc.c
index 3ceaa67..0a643f5 100644
--- a/source3/winbindd/winbindd_rpc.c
+++ b/source3/winbindd/winbindd_rpc.c
@@ -693,7 +693,7 @@ NTSTATUS rpc_lookup_groupmem(TALLOC_CTX *mem_ctx,
 	switch(type) {
 	case SID_NAME_DOM_GRP:
 	{
-		struct samr_RidTypeArray *rids = NULL;
+		struct samr_RidAttrArray *rids = NULL;
 
 		status = rpccli_samr_OpenGroup(samr_pipe,
 					       mem_ctx,
diff --git a/source4/rpc_server/samr/dcesrv_samr.c b/source4/rpc_server/samr/dcesrv_samr.c
index 4a3f95e..3a73c7a 100644
--- a/source4/rpc_server/samr/dcesrv_samr.c
+++ b/source4/rpc_server/samr/dcesrv_samr.c
@@ -2118,7 +2118,7 @@ static NTSTATUS dcesrv_samr_QueryGroupMember(struct dcesrv_call_state *dce_call,
 	struct dcesrv_handle *h;
 	struct samr_account_state *a_state;
 	struct samr_domain_state *d_state;
-	struct samr_RidTypeArray *array;
+	struct samr_RidAttrArray *array;
 	unsigned int i, num_members;
 	struct dom_sid *members;
 	NTSTATUS status;
@@ -2135,7 +2135,7 @@ static NTSTATUS dcesrv_samr_QueryGroupMember(struct dcesrv_call_state *dce_call,
 		return status;
 	}
 
-	array = talloc_zero(mem_ctx, struct samr_RidTypeArray);
+	array = talloc_zero(mem_ctx, struct samr_RidAttrArray);
 	if (array == NULL) {
 		return NT_STATUS_NO_MEMORY;
 	}
@@ -2151,8 +2151,8 @@ static NTSTATUS dcesrv_samr_QueryGroupMember(struct dcesrv_call_state *dce_call,
 		return NT_STATUS_NO_MEMORY;
 	}
 
-	array->types = talloc_array(array, uint32_t, num_members);
-	if (array->types == NULL) {
+	array->attributes = talloc_array(array, uint32_t, num_members);
+	if (array->attributes == NULL) {
 		return NT_STATUS_NO_MEMORY;
 	}
 
@@ -2168,7 +2168,9 @@ static NTSTATUS dcesrv_samr_QueryGroupMember(struct dcesrv_call_state *dce_call,
 			return status;
 		}
 
-		array->types[array->count] = 7; /* RID type of some kind, not sure what the value means. */
+		array->attributes[array->count] = SE_GROUP_MANDATORY |
+						  SE_GROUP_ENABLED_BY_DEFAULT |
+						  SE_GROUP_ENABLED;
 		array->count++;
 	}
 
diff --git a/source4/torture/rpc/samr.c b/source4/torture/rpc/samr.c
index 7212f1e..ad61692 100644
--- a/source4/torture/rpc/samr.c
+++ b/source4/torture/rpc/samr.c
@@ -5616,7 +5616,7 @@ static bool test_QueryGroupMember(struct dcerpc_binding_handle *b,
 				  struct policy_handle *handle)
 {
 	struct samr_QueryGroupMember r;
-	struct samr_RidTypeArray *rids = NULL;
+	struct samr_RidAttrArray *rids = NULL;
 	bool ret = true;
 
 	torture_comment(tctx, "Testing QueryGroupMember\n");
@@ -7010,7 +7010,7 @@ static bool test_AddGroupMember(struct dcerpc_binding_handle *b,
 	struct samr_AddGroupMember r;
 	struct samr_DeleteGroupMember d;
 	struct samr_QueryGroupMember q;
-	struct samr_RidTypeArray *rids = NULL;
+	struct samr_RidAttrArray *rids = NULL;
 	struct samr_SetMemberAttributesOfGroup s;
 	uint32_t rid;
 	bool found_member = false;
diff --git a/source4/torture/rpc/samr_accessmask.c b/source4/torture/rpc/samr_accessmask.c
index 63f99f9..e6f7b05 100644
--- a/source4/torture/rpc/samr_accessmask.c
+++ b/source4/torture/rpc/samr_accessmask.c
@@ -812,7 +812,7 @@ static bool test_samr_group(struct torture_context *tctx,
 	}
 	{
 		struct samr_QueryGroupMember r;
-		struct samr_RidTypeArray *rids;
+		struct samr_RidAttrArray *rids;
 
 		r.in.group_handle = &group_handle;
 		r.out.rids = &rids;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list