mirror of
https://github.com/samba-team/samba.git
synced 2025-02-28 01:58:17 +03:00
s4-smbtorture: add test for svcctl_QueryServiceConfig2W.
Guenther
This commit is contained in:
parent
abbd539082
commit
2409f216cf
@ -118,6 +118,53 @@ static bool test_QueryServiceStatusEx(struct torture_context *tctx, struct dcerp
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool test_QueryServiceConfig2W(struct torture_context *tctx, struct dcerpc_pipe *p)
|
||||
{
|
||||
struct svcctl_QueryServiceConfig2W r;
|
||||
struct policy_handle h, s;
|
||||
NTSTATUS status;
|
||||
|
||||
uint32_t info_level = 0;
|
||||
uint8_t *buffer;
|
||||
uint32_t buf_size = 0;
|
||||
uint32_t bytes_needed = 0;
|
||||
|
||||
if (!test_OpenSCManager(p, tctx, &h))
|
||||
return false;
|
||||
|
||||
if (!test_OpenService(p, tctx, &h, "Netlogon", &s))
|
||||
return false;
|
||||
|
||||
buffer = talloc(tctx, uint8_t);
|
||||
|
||||
r.in.handle = &s;
|
||||
r.in.info_level = 1;
|
||||
r.in.buf_size = buf_size;
|
||||
r.out.buffer = buffer;
|
||||
r.out.bytes_needed = &bytes_needed;
|
||||
|
||||
status = dcerpc_svcctl_QueryServiceConfig2W(p, tctx, &r);
|
||||
torture_assert_ntstatus_ok(tctx, status, "QueryServiceConfig2W failed!");
|
||||
|
||||
if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
|
||||
r.in.buf_size = bytes_needed;
|
||||
buffer = talloc_array(tctx, uint8_t, bytes_needed);
|
||||
r.out.buffer = buffer;
|
||||
|
||||
status = dcerpc_svcctl_QueryServiceConfig2W(p, tctx, &r);
|
||||
torture_assert_ntstatus_ok(tctx, status, "QueryServiceConfig2W failed!");
|
||||
torture_assert_werr_ok(tctx, r.out.result, "QueryServiceConfig2W failed!");
|
||||
}
|
||||
|
||||
if (!test_CloseServiceHandle(p, tctx, &s))
|
||||
return false;
|
||||
|
||||
if (!test_CloseServiceHandle(p, tctx, &h))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool test_EnumServicesStatus(struct torture_context *tctx, struct dcerpc_pipe *p)
|
||||
{
|
||||
struct svcctl_EnumServicesStatusW r;
|
||||
@ -195,6 +242,8 @@ struct torture_suite *torture_rpc_svcctl(TALLOC_CTX *mem_ctx)
|
||||
test_EnumServicesStatus);
|
||||
torture_rpc_tcase_add_test(tcase, "QueryServiceStatusEx",
|
||||
test_QueryServiceStatusEx);
|
||||
torture_rpc_tcase_add_test(tcase, "QueryServiceConfig2W",
|
||||
test_QueryServiceConfig2W);
|
||||
|
||||
return suite;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user