From 84a5b728472b9cc7b942d521bc41afff66aa9141 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Fri, 6 Oct 2006 18:50:48 +0000 Subject: r19152: A simple consistency check for enumprinters (This used to be commit 593b17c8e5678949d8b41d241f522ffb20c6640f) --- source4/torture/rpc/samba3rpc.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) (limited to 'source4/torture/rpc/samba3rpc.c') diff --git a/source4/torture/rpc/samba3rpc.c b/source4/torture/rpc/samba3rpc.c index 1e859e1ff8..8bfbad22e5 100644 --- a/source4/torture/rpc/samba3rpc.c +++ b/source4/torture/rpc/samba3rpc.c @@ -2230,7 +2230,7 @@ static NTSTATUS find_printers(TALLOC_CTX *ctx, struct smbcli_tree *tree, } static BOOL enumprinters(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *pipe, - int level) + int level, int *num_printers) { struct spoolss_EnumPrinters r; NTSTATUS status; @@ -2273,6 +2273,8 @@ static BOOL enumprinters(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *pipe, return False; } + *num_printers = r.out.count; + return True; } @@ -2506,10 +2508,20 @@ BOOL torture_samba3_rpc_spoolss(struct torture_context *torture) } } - if (!enumprinters(mem_ctx, p, 1)) { - d_printf("(%s) enumprinters failed\n", __location__); - talloc_free(mem_ctx); - return False; + { + int num_enumerated; + if (!enumprinters(mem_ctx, p, 1, &num_enumerated)) { + d_printf("(%s) enumprinters failed\n", __location__); + talloc_free(mem_ctx); + return False; + } + if (num_printers != num_enumerated) { + d_printf("(%s) netshareenum gave %d printers, " + "enumprinters gave %d\n", __location__, + num_printers, num_enumerated); + talloc_free(mem_ctx); + return False; + } } talloc_free(mem_ctx); -- cgit