From d64afbde23a4fa9693ea6561b3fc967a47de770e Mon Sep 17 00:00:00 2001 From: Arvid Requate Date: Thu, 21 Nov 2013 12:35:20 +0100 Subject: [PATCH] spoolss: accept XPS_PASS datatype used by Windows 8 The new v4 driver model used in Windows 8 declares print jobs intended to bypass the XPS processing layer by setting datatype to "XPS_PASS" instead of "RAW". BUG: https://bugzilla.samba.org/show_bug.cgi?id=10267 Reviewed-by: David Disseldorp Reviewed-by: Andreas Schneider (cherry picked from commit b2815b4c8c3e436a79fb7f07be285a417fd6e8cb) --- source3/rpc_server/spoolss/srv_spoolss_nt.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c index 9ecf191..fa5f022 100644 --- a/source3/rpc_server/spoolss/srv_spoolss_nt.c +++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c @@ -5771,7 +5771,13 @@ WERROR _spoolss_StartDocPrinter(struct pipes_struct *p, */ if (info_1->datatype) { - if (strcmp(info_1->datatype, "RAW") != 0) { + /* + * The v4 driver model used in Windows 8 declares print jobs + * intended to bypass the XPS processing layer by setting + * datatype to "XPS_PASS" instead of "RAW". + */ + if ((strcmp(info_1->datatype, "RAW") != 0) + && (strcmp(info_1->datatype, "XPS_PASS") != 0)) { *r->out.job_id = 0; return WERR_INVALID_DATATYPE; } -- 1.8.1.4