diff options
author | Günther Deschner <gd@samba.org> | 2009-02-06 17:09:30 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2009-02-06 17:36:10 +0100 |
commit | afe300cb527c19cffa8667db4772d0d5812c342b (patch) | |
tree | ec98b81b64774e8f9c4a6494b3fdf4d86942ed97 /source4/torture/rpc/spoolss_win.c | |
parent | 0155b5c8439d829c8ced81cd0198830de095cca6 (diff) | |
download | samba-afe300cb527c19cffa8667db4772d0d5812c342b.tar.gz samba-afe300cb527c19cffa8667db4772d0d5812c342b.tar.bz2 samba-afe300cb527c19cffa8667db4772d0d5812c342b.zip |
s4-smbtorture: fix spoolss enum tests.
Guenther
Diffstat (limited to 'source4/torture/rpc/spoolss_win.c')
-rw-r--r-- | source4/torture/rpc/spoolss_win.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/source4/torture/rpc/spoolss_win.c b/source4/torture/rpc/spoolss_win.c index 647f13e9bc..cddba3d38c 100644 --- a/source4/torture/rpc/spoolss_win.c +++ b/source4/torture/rpc/spoolss_win.c @@ -155,11 +155,13 @@ static bool test_GetPrinterData(struct torture_context *tctx, { NTSTATUS status; struct spoolss_GetPrinterData gpd; + uint32_t needed; torture_comment(tctx, "Testing GetPrinterData(%s).\n", value_name); gpd.in.handle = handle; gpd.in.value_name = value_name; gpd.in.offered = 4; + gpd.out.needed = &needed; status = dcerpc_spoolss_GetPrinterData(p, tctx, &gpd); torture_assert_ntstatus_ok(tctx, status, "GetPrinterData failed."); @@ -182,20 +184,22 @@ static bool test_EnumPrinters(struct torture_context *tctx, NTSTATUS status; struct spoolss_EnumPrinters ep; DATA_BLOB blob = data_blob_talloc_zero(ctx, initial_blob_size); + uint32_t needed; ep.in.flags = PRINTER_ENUM_NAME; ep.in.server = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p)); ep.in.level = 2; ep.in.buffer = &blob; ep.in.offered = initial_blob_size; + ep.out.needed = &needed; status = dcerpc_spoolss_EnumPrinters(p, ctx, &ep); torture_assert_ntstatus_ok(tctx, status, "EnumPrinters failed."); if (W_ERROR_EQUAL(ep.out.result, WERR_INSUFFICIENT_BUFFER)) { - blob = data_blob_talloc_zero(ctx, ep.out.needed); + blob = data_blob_talloc_zero(ctx, needed); ep.in.buffer = &blob; - ep.in.offered = ep.out.needed; + ep.in.offered = needed; status = dcerpc_spoolss_EnumPrinters(p, ctx, &ep); torture_assert_ntstatus_ok(tctx, status,"EnumPrinters failed."); } @@ -309,6 +313,7 @@ static bool test_EnumForms(struct torture_context *tctx, NTSTATUS status; struct spoolss_EnumForms ef; DATA_BLOB blob = data_blob_talloc_zero(tctx, initial_blob_size); + uint32_t needed; torture_comment(tctx, "Testing EnumForms\n"); @@ -316,14 +321,15 @@ static bool test_EnumForms(struct torture_context *tctx, ef.in.level = 1; ef.in.buffer = (initial_blob_size == 0)?NULL:&blob; ef.in.offered = initial_blob_size; + ef.out.needed = &needed; status = dcerpc_spoolss_EnumForms(p, tctx, &ef); torture_assert_ntstatus_ok(tctx, status, "EnumForms failed"); if (W_ERROR_EQUAL(ef.out.result, WERR_INSUFFICIENT_BUFFER)) { - blob = data_blob_talloc_zero(tctx, ef.out.needed); + blob = data_blob_talloc_zero(tctx, needed); ef.in.buffer = &blob; - ef.in.offered = ef.out.needed; + ef.in.offered = needed; status = dcerpc_spoolss_EnumForms(p, tctx, &ef); torture_assert_ntstatus_ok(tctx, status, "EnumForms failed"); } |