summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2016-09-01 19:54:46 +0200
committerKarolin Seeger <kseeger@samba.org>2016-09-07 12:30:39 +0200
commit398903202574284f810e954341a05e9bd4916c72 (patch)
treee205630d25a1e7b4ef30a09bc4e3ca1550334012
parent2419d59be9d76aa96375c5dd0eb55d7b59bbdb31 (diff)
downloadsamba-398903202574284f810e954341a05e9bd4916c72.tar.gz
s4-torture: test GetPrinterData with server handle and 0 keylength.
This is what e.g. Windows 10 does a lot. Guenther Signed-off-by: Guenther Deschner <gd@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org> BUG: https://bugzilla.samba.org/show_bug.cgi?id=12245 (cherry picked from commit 518b2a3f5f3a4814e96546505487b775b5dbca40)
-rw-r--r--source4/torture/rpc/spoolss.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/source4/torture/rpc/spoolss.c b/source4/torture/rpc/spoolss.c
index 4bc99f241f9..52494b6edc6 100644
--- a/source4/torture/rpc/spoolss.c
+++ b/source4/torture/rpc/spoolss.c
@@ -4119,19 +4119,27 @@ static bool test_GetPrinterData_list(struct torture_context *tctx,
for (i=0; i < ARRAY_SIZE(list); i++) {
enum winreg_Type type = REG_NONE;
- enum winreg_Type type_ex= REG_NONE;
+ enum winreg_Type type_ex1 = REG_NONE;
+ enum winreg_Type type_ex2 = REG_NONE;
uint8_t *data;
- uint8_t *data_ex = NULL;
+ uint8_t *data_ex1 = NULL;
+ uint8_t *data_ex2 = NULL;
uint32_t needed;
- uint32_t needed_ex = 0;
+ uint32_t needed_ex1 = 0;
+ uint32_t needed_ex2 = 0;
torture_assert(tctx, test_GetPrinterData(tctx, b, &ctx->server_handle, list[i], &type, &data, &needed),
talloc_asprintf(tctx, "GetPrinterData failed on %s\n", list[i]));
- torture_assert(tctx, test_GetPrinterDataEx(tctx, p, &ctx->server_handle, "random_string", list[i], &type_ex, &data_ex, &needed_ex),
+ torture_assert(tctx, test_GetPrinterDataEx(tctx, p, &ctx->server_handle, "random_string", list[i], &type_ex1, &data_ex1, &needed_ex1),
talloc_asprintf(tctx, "GetPrinterDataEx failed on %s\n", list[i]));
- torture_assert_int_equal(tctx, type, type_ex, "type mismatch");
- torture_assert_int_equal(tctx, needed, needed_ex, "needed mismatch");
- torture_assert_mem_equal(tctx, data, data_ex, needed, "data mismatch");
+ torture_assert(tctx, test_GetPrinterDataEx(tctx, p, &ctx->server_handle, "", list[i], &type_ex2, &data_ex2, &needed_ex2),
+ talloc_asprintf(tctx, "GetPrinterDataEx failed on %s\n", list[i]));
+ torture_assert_int_equal(tctx, type, type_ex1, "type mismatch");
+ torture_assert_int_equal(tctx, type, type_ex2, "type mismatch");
+ torture_assert_int_equal(tctx, needed, needed_ex1, "needed mismatch");
+ torture_assert_int_equal(tctx, needed, needed_ex2, "needed mismatch");
+ torture_assert_mem_equal(tctx, data, data_ex1, needed, "data mismatch");
+ torture_assert_mem_equal(tctx, data, data_ex2, needed, "data mismatch");
}
return true;