summaryrefslogtreecommitdiff
path: root/source4/torture
diff options
context:
space:
mode:
Diffstat (limited to 'source4/torture')
-rw-r--r--source4/torture/rpc/eventlog.c10
-rw-r--r--source4/torture/rpc/spoolss.c22
2 files changed, 23 insertions, 9 deletions
diff --git a/source4/torture/rpc/eventlog.c b/source4/torture/rpc/eventlog.c
index 047146edaf..feeeb9330b 100644
--- a/source4/torture/rpc/eventlog.c
+++ b/source4/torture/rpc/eventlog.c
@@ -67,11 +67,14 @@ static bool test_GetNumRecords(struct torture_context *tctx, struct dcerpc_pipe
struct eventlog_GetNumRecords r;
struct eventlog_CloseEventLog cr;
struct policy_handle handle;
+ uint32_t number = 0;
if (!get_policy_handle(tctx, p, &handle))
return false;
+ ZERO_STRUCT(r);
r.in.handle = &handle;
+ r.out.number = &number;
torture_assert_ntstatus_ok(tctx,
dcerpc_eventlog_GetNumRecords(p, tctx, &r),
@@ -98,6 +101,7 @@ static bool test_ReadEventLog(struct torture_context *tctx,
if (!get_policy_handle(tctx, p, &handle))
return false;
+ ZERO_STRUCT(r);
r.in.offset = 0;
r.in.handle = &handle;
r.in.flags = EVENTLOG_BACKWARDS_READ|EVENTLOG_SEQUENTIAL_READ;
@@ -107,11 +111,15 @@ static bool test_ReadEventLog(struct torture_context *tctx,
struct eventlog_Record rec;
struct ndr_pull *ndr;
enum ndr_err_code ndr_err;
+ uint32_t sent_size = 0;
+ uint32_t real_size = 0;
/* Read first for number of bytes in record */
r.in.number_of_bytes = 0;
r.out.data = NULL;
+ r.out.sent_size = &sent_size;
+ r.out.real_size = &real_size;
status = dcerpc_eventlog_ReadEventLogW(p, tctx, &r);
@@ -119,8 +127,6 @@ static bool test_ReadEventLog(struct torture_context *tctx,
break;
}
- torture_assert_ntstatus_ok(tctx, status, "ReadEventLog failed");
-
torture_assert_ntstatus_equal(tctx, r.out.result, NT_STATUS_BUFFER_TOO_SMALL,
"ReadEventLog failed");
diff --git a/source4/torture/rpc/spoolss.c b/source4/torture/rpc/spoolss.c
index 23b4aad30b..4a6ff480c4 100644
--- a/source4/torture/rpc/spoolss.c
+++ b/source4/torture/rpc/spoolss.c
@@ -1178,16 +1178,23 @@ static bool test_EnumPrinterData(struct torture_context *tctx, struct dcerpc_pip
NTSTATUS status;
struct spoolss_EnumPrinterData r;
+ ZERO_STRUCT(r);
r.in.handle = handle;
r.in.enum_index = 0;
do {
- uint32_t data_size;
-
- r.in.value_offered = 0;
- data_size = 0;
- r.in.data_size = &data_size;
- r.out.data_size = &data_size;
+ uint32_t value_size = 0;
+ uint32_t data_size = 0;
+ uint32_t printerdata_type = 0;
+ DATA_BLOB data = data_blob(NULL,0);
+
+ r.in.value_offered = value_size;
+ r.out.value_needed = &value_size;
+ r.in.data_offered = data_size;
+ r.out.data_needed = &data_size;
+
+ r.out.printerdata_type = &printerdata_type;
+ r.out.buffer = &data;
torture_comment(tctx, "Testing EnumPrinterData\n");
@@ -1195,7 +1202,8 @@ static bool test_EnumPrinterData(struct torture_context *tctx, struct dcerpc_pip
torture_assert_ntstatus_ok(tctx, status, "EnumPrinterData failed");
- r.in.value_offered = r.out.value_needed;
+ r.in.value_offered = value_size;
+ r.in.data_offered = data_size;
status = dcerpc_spoolss_EnumPrinterData(p, tctx, &r);