The branch, v3-6-test has been updated via 547fbb3 samr: for correctness, rename samr_RidTypeArray to samr_RidAttrArray. via 6e20bd8 s4-samr: Fix dcesrv_samr_QueryGroupMember. via 3244835 s3-samr: fix _samr_QueryGroupMember(). from efcc76b s3: Adding TCP_KEEPALIVE_THRESHOLD and TCP_KEEPALIVE_ABORT_THRESHOLD to the list of accepted socket settings.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test - Log ----------------------------------------------------------------- commit 547fbb3b026e7c3d64b033af8e29fd2e9cc0b370 Author: Günther Deschner <g...@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 <g...@samba.org> Autobuild-Date: Thu Oct 7 12:04:32 UTC 2010 on sn-devel-104 (cherry picked from commit b7683a2c9d10e34e4d8eed8664ed4c14f71f981f) commit 6e20bd8b7d040d44867e26888f218583f100b6d1 Author: Günther Deschner <g...@samba.org> Date: Thu Oct 7 12:45:45 2010 +0200 s4-samr: Fix dcesrv_samr_QueryGroupMember. Guenther (cherry picked from commit e0b340247a4f7f0b6506752add0af3df8deb9920) commit 3244835dd517eb416f24b3cfec24814444a7e1bc Author: Günther Deschner <g...@samba.org> Date: Thu Oct 7 12:45:04 2010 +0200 s3-samr: fix _samr_QueryGroupMember(). that array contains attributes, not sid types. Guenther (cherry picked from commit 71ab8f326b7e73ed888e46452d4c31ea17c69c60) ----------------------------------------------------------------------- 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 7b0159c..c9514c0 100644 --- a/source3/lib/netapi/group.c +++ b/source3/lib/netapi/group.c @@ -233,7 +233,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); @@ -1259,7 +1259,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; @@ -1407,7 +1407,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 6d4c108..b087528 100644 --- a/source3/rpc_server/srv_samr_nt.c +++ b/source3/rpc_server/srv_samr_nt.c @@ -5485,7 +5485,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, @@ -5494,7 +5494,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; } @@ -5526,11 +5526,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 ea94376..f0f1243 100644 --- a/source3/rpcclient/cmd_samr.c +++ b/source3/rpcclient/cmd_samr.c @@ -721,7 +721,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]); @@ -773,7 +773,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 8c9f0f8..c9ab86b 100644 --- a/source3/utils/net_rpc.c +++ b/source3/utils/net_rpc.c @@ -1510,7 +1510,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; */ @@ -2511,7 +2511,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 80f7bb6..15c0424 100644 --- a/source3/winbindd/winbindd_rpc.c +++ b/source3/winbindd/winbindd_rpc.c @@ -692,7 +692,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 e222a41..1a455f9 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 a34ef40..d52c049 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