diff options
author | Günther Deschner <gd@samba.org> | 2009-03-18 21:36:40 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2009-03-18 21:56:38 +0100 |
commit | 43182fdff89bc5c238e7a90cf93500cef850ecd5 (patch) | |
tree | c1ec2af696162724f30941e55e9ce830719d2b89 | |
parent | 7a85a87edf3a589235b932a3c802278e78da4ec5 (diff) | |
download | samba-43182fdff89bc5c238e7a90cf93500cef850ecd5.tar.gz samba-43182fdff89bc5c238e7a90cf93500cef850ecd5.tar.bz2 samba-43182fdff89bc5c238e7a90cf93500cef850ecd5.zip |
s3-spoolss: fix _spoolss_EnumPrinterDataEx error path.
When a windows clients queries the "" key, we need to make sure to return with
the appropriate error (WERR_INVALID_PARAM in that case), and not fall through
to the buffer size handling macros. Found by torture test.
Guenther
-rw-r--r-- | source3/rpc_server/srv_spoolss_nt.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c index 0b9598840b..5e1c53905a 100644 --- a/source3/rpc_server/srv_spoolss_nt.c +++ b/source3/rpc_server/srv_spoolss_nt.c @@ -9141,6 +9141,10 @@ WERROR _spoolss_EnumPrinterDataEx(pipes_struct *p, free_a_printer(&printer, 2); } + if (!W_ERROR_IS_OK(result)) { + return result; + } + *r->out.needed = SPOOLSS_BUFFER_ARRAY(p->mem_ctx, spoolss_EnumPrinterDataEx, NULL, *r->out.info, |