From 14f6dc55d67037bdcc73a35fe58fca0eec9a50e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Deschner?= Date: Mon, 7 Jan 2013 15:14:30 +0100 Subject: [PATCH 1/2] spoolss: add SPOOLSS_DRIVER_VERSION_2012 (4) define to IDL. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Guenther Signed-off-by: Günther Deschner Reviewed-by: Andreas Schneider (cherry picked from commit 638ed90620e3c6a35ef56a11c612c13d6b7d6ff5) --- librpc/idl/spoolss.idl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/librpc/idl/spoolss.idl b/librpc/idl/spoolss.idl index d888a79..4f706e2 100644 --- a/librpc/idl/spoolss.idl +++ b/librpc/idl/spoolss.idl @@ -1303,7 +1303,8 @@ cpp_quote("#define spoolss_security_descriptor security_descriptor") SPOOLSS_DRIVER_VERSION_9X = 0, SPOOLSS_DRIVER_VERSION_NT35 = 1, SPOOLSS_DRIVER_VERSION_NT4 = 2, - SPOOLSS_DRIVER_VERSION_200X = 3 + SPOOLSS_DRIVER_VERSION_200X = 3, + SPOOLSS_DRIVER_VERSION_2012 = 4 } spoolss_DriverOSVersion; typedef struct { -- 1.8.1 From 9abe336db721a9ed7515683414a8941d1799fbe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Deschner?= Date: Fri, 18 Jan 2013 00:22:31 +0100 Subject: [PATCH 2/2] BUG 9474: Downgrade v4 printer driver requests to v3. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Guenther Signed-off-by: Günther Deschner Reviewed-by: Andreas Schneider Autobuild-User(master): Andreas Schneider Autobuild-Date(master): Mon Jan 21 16:11:02 CET 2013 on sn-devel-104 (cherry picked from commit 58fadf2f48a2a409b4ee98fdc0166c7f801a7629) --- source3/rpc_server/spoolss/srv_spoolss_nt.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c index b8ee9f4..7b86960 100644 --- a/source3/rpc_server/spoolss/srv_spoolss_nt.c +++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c @@ -5602,6 +5602,7 @@ WERROR _spoolss_GetPrinterDriver2(struct pipes_struct *p, { struct printer_handle *printer; WERROR result; + uint32_t version = r->in.client_major_version; int snum; @@ -5626,13 +5627,19 @@ WERROR _spoolss_GetPrinterDriver2(struct pipes_struct *p, return WERR_BADFID; } + if (r->in.client_major_version == SPOOLSS_DRIVER_VERSION_2012) { + DEBUG(3,("_spoolss_GetPrinterDriver2: v4 driver requested, " + "downgrading to v3\n")); + version = SPOOLSS_DRIVER_VERSION_200X; + } + result = construct_printer_driver_info_level(p->mem_ctx, get_session_info_system(), p->msg_ctx, r->in.level, r->out.info, snum, printer->servername, r->in.architecture, - r->in.client_major_version); + version); if (!W_ERROR_IS_OK(result)) { TALLOC_FREE(r->out.info); return result; -- 1.8.1