summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2016-11-16 15:29:34 +0100
committerJeremy Allison <jra@samba.org>2016-11-20 02:28:11 +0100
commitf5154f2eb735df52d1d18bb7552ff650eb20861b (patch)
tree66484817db6f24d88634548516b6e2d030d63956
parente95012b01f0008123bad60bc3ba17412da5308e6 (diff)
downloadsamba-f5154f2eb735df52d1d18bb7552ff650eb20861b.tar.gz
s3:spoolss: Return error when there is no driver assigned
If you create a new printer in Samba, there is no driver assinged. Detect that early and return the right error code. Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Guenther Deschner <gd@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
-rw-r--r--source3/rpc_server/spoolss/srv_spoolss_nt.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c
index 1dcb22755ba..a0270c2872e 100644
--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
+++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
@@ -5704,6 +5704,14 @@ static WERROR construct_printer_driver_info_level(TALLOC_CTX *mem_ctx,
goto done;
}
+ if (pinfo2->drivername == NULL || pinfo2->drivername[0] == '\0') {
+ return WERR_UNKNOWN_PRINTER_DRIVER;
+ }
+
+ DBG_INFO("Construct printer driver [%s] for [%s]\n",
+ pinfo2->drivername,
+ pinfo2->sharename);
+
result = winreg_get_driver(tmp_ctx, b,
architecture,
pinfo2->drivername, version, &driver);