summaryrefslogtreecommitdiff
path: root/source3/rpc_parse
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2005-07-15 18:13:40 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 11:00:07 -0500
commita5868d58c718e9122f65db50f1799bcb82c778a0 (patch)
treef22a2a1fd6f61760a492597daba9d2831ecc31ff /source3/rpc_parse
parenteb1123e5009c900c0eb741c0a075f918b16bbeab (diff)
downloadsamba-a5868d58c718e9122f65db50f1799bcb82c778a0.tar.gz
samba-a5868d58c718e9122f65db50f1799bcb82c778a0.tar.bz2
samba-a5868d58c718e9122f65db50f1799bcb82c778a0.zip
r8507: BUG 2557: don't give and rpc fault when you get an unsupported SetPrinter() level
(This used to be commit f617ca33f45fbc779356c52664c1e689114accdd)
Diffstat (limited to 'source3/rpc_parse')
-rw-r--r--source3/rpc_parse/parse_spoolss.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/source3/rpc_parse/parse_spoolss.c b/source3/rpc_parse/parse_spoolss.c
index 8050712d97..2663b09381 100644
--- a/source3/rpc_parse/parse_spoolss.c
+++ b/source3/rpc_parse/parse_spoolss.c
@@ -3817,6 +3817,22 @@ BOOL spoolss_io_q_setprinter(const char *desc, SPOOL_Q_SETPRINTER *q_u, prs_stru
return False;
if(!prs_uint32("level", ps, depth, &q_u->level))
return False;
+
+ /* check for supported levels and structures we know about */
+
+ switch ( q_u->level ) {
+ case 0:
+ case 2:
+ case 3:
+ case 7:
+ /* supported levels */
+ break;
+ default:
+ DEBUG(0,("spoolss_io_q_setprinter: unsupported printer info level [%d]\n",
+ q_u->level));
+ return True;
+ }
+
if(!spool_io_printer_info_level("", &q_u->info, ps, depth))
return False;