From f7fe8ab17eec51b2b13955efb5ef2442ee4d44b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Deschner?= Date: Mon, 29 Nov 2010 17:56:40 +0100 Subject: [PATCH] s3-spoolss: Fix Bug #7641: handle win9x adddriver calls w/o config file. This turned cupsaddsmb to run into an infinite loop. Guenther (cherry picked from commit c62509c8f2589e7b952517626d61ee34b83e96b3) (cherry picked from commit 0a0f3b4947689ca4ab7015e9a1ace8d204bab9f3) --- source3/printing/nt_printing.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c index f97b746..3d1d4e8 100644 --- a/source3/printing/nt_printing.c +++ b/source3/printing/nt_printing.c @@ -1625,7 +1625,11 @@ static WERROR clean_up_driver_struct_level(TALLOC_CTX *mem_ctx, WERROR err; char *_p; - if (!*driver_path || !*data_file || !*config_file) { + if (!*driver_path || !*data_file) { + return WERR_INVALID_PARAM; + } + + if (!strequal(architecture, SPOOLSS_ARCHITECTURE_4_0) && !*config_file) { return WERR_INVALID_PARAM; } @@ -1637,7 +1641,9 @@ static WERROR clean_up_driver_struct_level(TALLOC_CTX *mem_ctx, strip_driver_path(mem_ctx, *driver_path); strip_driver_path(mem_ctx, *data_file); - strip_driver_path(mem_ctx, *config_file); + if (*config_file) { + strip_driver_path(mem_ctx, *config_file); + } if (help_file) { strip_driver_path(mem_ctx, *help_file); } -- 1.7.3.2