svn commit: samba r21100 - in branches: SAMBA_3_0/source/rpc_server
SAMBA_3_0_24/source/rpc_server
jra at samba.org
jra at samba.org
Wed Jan 31 21:33:46 GMT 2007
Author: jra
Date: 2007-01-31 21:33:45 +0000 (Wed, 31 Jan 2007)
New Revision: 21100
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=21100
Log:
Add the RPC hack fix to adddriver as well as adddriverex.
Thanks to Martin Zielinski <mz at seh.de>.
Jeremy.
Modified:
branches/SAMBA_3_0/source/rpc_server/srv_spoolss.c
branches/SAMBA_3_0_24/source/rpc_server/srv_spoolss.c
Changeset:
Modified: branches/SAMBA_3_0/source/rpc_server/srv_spoolss.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_server/srv_spoolss.c 2007-01-31 20:28:32 UTC (rev 21099)
+++ branches/SAMBA_3_0/source/rpc_server/srv_spoolss.c 2007-01-31 21:33:45 UTC (rev 21100)
@@ -910,6 +910,15 @@
ZERO_STRUCT(r_u);
if(!spoolss_io_q_addprinterdriver("", &q_u, data, 0)) {
+ if (q_u.level != 3 && q_u.level != 6) {
+ /* Clever hack from Martin Zielinski <mz at seh.de>
+ * to allow downgrade from level 8 (Vista).
+ */
+ DEBUG(3,("api_spoolss_addprinterdriver: unknown SPOOL_Q_ADDPRINTERDRIVER 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_addprinterdriver: unable to unmarshall SPOOL_Q_ADDPRINTERDRIVER.\n"));
return False;
}
Modified: branches/SAMBA_3_0_24/source/rpc_server/srv_spoolss.c
===================================================================
--- branches/SAMBA_3_0_24/source/rpc_server/srv_spoolss.c 2007-01-31 20:28:32 UTC (rev 21099)
+++ branches/SAMBA_3_0_24/source/rpc_server/srv_spoolss.c 2007-01-31 21:33:45 UTC (rev 21100)
@@ -910,6 +910,15 @@
ZERO_STRUCT(r_u);
if(!spoolss_io_q_addprinterdriver("", &q_u, data, 0)) {
+ if (q_u.level != 3 && q_u.level != 6) {
+ /* Clever hack from Martin Zielinski <mz at seh.de>
+ * to allow downgrade from level 8 (Vista).
+ */
+ DEBUG(3,("api_spoolss_addprinterdriver: unknown SPOOL_Q_ADDPRINTERDRIVER 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_addprinterdriver: unable to unmarshall SPOOL_Q_ADDPRINTERDRIVER.\n"));
return False;
}
More information about the samba-cvs
mailing list