From 1c46bffb115506a561d85ee2e2710b01a377d0f5 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Tue, 26 Jun 2012 10:38:08 +0200 Subject: s4-torture: Make sure lsa_OpenPolicy2 fails over TCP/IP. --- source4/torture/rpc/lsa.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'source4/torture/rpc/lsa.c') diff --git a/source4/torture/rpc/lsa.c b/source4/torture/rpc/lsa.c index d2f1bcef23..7599fa9a94 100644 --- a/source4/torture/rpc/lsa.c +++ b/source4/torture/rpc/lsa.c @@ -91,7 +91,8 @@ static bool test_OpenPolicy(struct dcerpc_binding_handle *b, bool test_lsa_OpenPolicy2_ex(struct dcerpc_binding_handle *b, struct torture_context *tctx, struct policy_handle **handle, - NTSTATUS expected_status) + NTSTATUS expected_status, + bool test_fail) { struct lsa_ObjectAttribute attr; struct lsa_QosInfo qos; @@ -131,11 +132,13 @@ bool test_lsa_OpenPolicy2_ex(struct dcerpc_binding_handle *b, if (!NT_STATUS_IS_OK(r.out.result)) { if (NT_STATUS_EQUAL(r.out.result, NT_STATUS_ACCESS_DENIED) || NT_STATUS_EQUAL(r.out.result, NT_STATUS_RPC_PROTSEQ_NOT_SUPPORTED)) { - torture_comment(tctx, "not considering %s to be an error\n", - nt_errstr(r.out.result)); - talloc_free(*handle); - *handle = NULL; - return true; + if (test_fail) { + torture_comment(tctx, "not considering %s to be an error\n", + nt_errstr(r.out.result)); + talloc_free(*handle); + *handle = NULL; + return true; + } } torture_comment(tctx, "OpenPolicy2 failed - %s\n", nt_errstr(r.out.result)); @@ -150,7 +153,7 @@ bool test_lsa_OpenPolicy2(struct dcerpc_binding_handle *b, struct torture_context *tctx, struct policy_handle **handle) { - return test_lsa_OpenPolicy2_ex(b, tctx, handle, NT_STATUS_OK); + return test_lsa_OpenPolicy2_ex(b, tctx, handle, NT_STATUS_OK, false); } static bool test_LookupNames(struct dcerpc_binding_handle *b, @@ -3083,6 +3086,11 @@ bool torture_rpc_lsa(struct torture_context *tctx) ret = false; } + if (!test_lsa_OpenPolicy2_ex(b, tctx, &handle, + NT_STATUS_OK, true)) { + ret = false; + } + if (!test_many_LookupSids(p, tctx, handle)) { ret = false; } -- cgit