summaryrefslogtreecommitdiffstats
path: root/source/rpc_server
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2007-01-29 22:51:44 +0000
committerJeremy Allison <jra@samba.org>2007-01-29 22:51:44 +0000
commit7d4d499480dc4d7fa2144972388db0b930f2c6e5 (patch)
tree8fd6f3a7c18ae6f7d34e96c99e62dbd00ffc0f2d /source/rpc_server
parentbb7e2519d776816e00c91e1f96ea5cf7f4730a01 (diff)
downloadsamba-7d4d499480dc4d7fa2144972388db0b930f2c6e5.tar.gz
samba-7d4d499480dc4d7fa2144972388db0b930f2c6e5.tar.xz
samba-7d4d499480dc4d7fa2144972388db0b930f2c6e5.zip
r21047: Hand marshalling hack from Martin Zielinski <mz@seh.de>
to allow Vista to upload printer drivers (it wants level 8 which we don't support yet). Downgrade in the same way that Windows servers do. Jeremy.
Diffstat (limited to 'source/rpc_server')
-rwxr-xr-xsource/rpc_server/srv_spoolss.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source/rpc_server/srv_spoolss.c b/source/rpc_server/srv_spoolss.c
index 0a43e8ae8ac..dcc357f8040 100755
--- a/source/rpc_server/srv_spoolss.c
+++ b/source/rpc_server/srv_spoolss.c
@@ -1477,6 +1477,15 @@ static BOOL api_spoolss_addprinterdriverex(pipes_struct *p)
ZERO_STRUCT(r_u);
if(!spoolss_io_q_addprinterdriverex("", &q_u, data, 0)) {
+ if (q_u.level != 3 && q_u.level != 6) {
+ /* Clever hack from Martin Zielinski <mz@seh.de>
+ * to allow downgrade from level 8 (Vista).
+ */
+ DEBUG(3,("api_spoolss_addprinterdriverex: unknown SPOOL_Q_ADDPRINTERDRIVEREX level %u.\n",
+ (unsigned int)q_u.level ));
+ setup_fault_pdu(p, NT_STATUS(DCERPC_FAULT_INVALID_TAG));
+ return True;
+ }
DEBUG(0,("spoolss_io_q_addprinterdriverex: unable to unmarshall SPOOL_Q_ADDPRINTERDRIVEREX.\n"));
return False;
}