git.samba.org
/
metze
/
samba
/
wip.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
05459cf
)
s4-smbtorture: more paranoid checks while testing group membership in RPC-SAMR.
author
Günther Deschner
<gd@samba.org>
Tue, 23 Jun 2009 22:27:33 +0000
(
00:27
+0200)
committer
Günther Deschner
<gd@samba.org>
Tue, 23 Jun 2009 22:37:51 +0000
(
00:37
+0200)
Guenther
source4/torture/rpc/samr.c
patch
|
blob
|
history
diff --git
a/source4/torture/rpc/samr.c
b/source4/torture/rpc/samr.c
index bd88c3bdf03fdf3f9a909dea7ff8b710371336fd..e3d12453ee1cdf56f06b868471fefcb22c26f263 100644
(file)
--- a/
source4/torture/rpc/samr.c
+++ b/
source4/torture/rpc/samr.c
@@
-5909,6
+5909,8
@@
static bool test_AddGroupMember(struct dcerpc_pipe *p, struct torture_context *t
struct samr_RidTypeArray *rids = NULL;
struct samr_SetMemberAttributesOfGroup s;
uint32_t rid;
struct samr_RidTypeArray *rids = NULL;
struct samr_SetMemberAttributesOfGroup s;
uint32_t rid;
+ bool found_member = false;
+ int i;
status = test_LookupName(p, tctx, domain_handle, TEST_ACCOUNT_NAME, &rid);
torture_assert_ntstatus_ok(tctx, status, "test_AddGroupMember looking up name " TEST_ACCOUNT_NAME);
status = test_LookupName(p, tctx, domain_handle, TEST_ACCOUNT_NAME, &rid);
torture_assert_ntstatus_ok(tctx, status, "test_AddGroupMember looking up name " TEST_ACCOUNT_NAME);
@@
-5917,7
+5919,7
@@
static bool test_AddGroupMember(struct dcerpc_pipe *p, struct torture_context *t
r.in.rid = rid;
r.in.flags = 0; /* ??? */
r.in.rid = rid;
r.in.flags = 0; /* ??? */
- torture_comment(tctx, "Testing AddGroupMember and DeleteGroupMember\n");
+ torture_comment(tctx, "Testing AddGroupMember
, QueryGroupMember
and DeleteGroupMember\n");
d.in.group_handle = group_handle;
d.in.rid = rid;
d.in.group_handle = group_handle;
d.in.rid = rid;
@@
-5951,10
+5953,34
@@
static bool test_AddGroupMember(struct dcerpc_pipe *p, struct torture_context *t
status = dcerpc_samr_QueryGroupMember(p, tctx, &q);
torture_assert_ntstatus_ok(tctx, status, "QueryGroupMember");
status = dcerpc_samr_QueryGroupMember(p, tctx, &q);
torture_assert_ntstatus_ok(tctx, status, "QueryGroupMember");
+ torture_assert(tctx, rids, "QueryGroupMember did not fill in rids structure");
+
+ for (i=0; i < rids->count; i++) {
+ if (rids->rids[i] == rid) {
+ found_member = true;
+ }
+ }
+
+ torture_assert(tctx, found_member, "QueryGroupMember did not list newly added member");
status = dcerpc_samr_DeleteGroupMember(p, tctx, &d);
torture_assert_ntstatus_ok(tctx, status, "DeleteGroupMember");
status = dcerpc_samr_DeleteGroupMember(p, tctx, &d);
torture_assert_ntstatus_ok(tctx, status, "DeleteGroupMember");
+ rids = NULL;
+ found_member = false;
+
+ status = dcerpc_samr_QueryGroupMember(p, tctx, &q);
+ torture_assert_ntstatus_ok(tctx, status, "QueryGroupMember");
+ torture_assert(tctx, rids, "QueryGroupMember did not fill in rids structure");
+
+ for (i=0; i < rids->count; i++) {
+ if (rids->rids[i] == rid) {
+ found_member = true;
+ }
+ }
+
+ torture_assert(tctx, !found_member, "QueryGroupMember does still list removed member");
+
status = dcerpc_samr_AddGroupMember(p, tctx, &r);
torture_assert_ntstatus_ok(tctx, status, "AddGroupMember");
status = dcerpc_samr_AddGroupMember(p, tctx, &r);
torture_assert_ntstatus_ok(tctx, status, "AddGroupMember");