From: Andreas Schneider Date: Thu, 13 Jan 2022 14:31:33 +0000 (+0100) Subject: s3:smbd: handle --build-options without parsing smb.conf X-Git-Tag: tdb-1.4.6~88 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6a463c40d755b75b02884f123c19cc2c2845d729;p=thirdparty%2Fsamba.git s3:smbd: handle --build-options without parsing smb.conf The smb.conf is parsed in post mode of a popt callback. The smbd --build-options parameter should be handled when first encountered to avoid requiring smb.conf presence. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14945 Signed-off-by: Andreas Schneider Reviewed-by: David Disseldorp --- diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 39aa0d91624..abb54d3ced8 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -1554,7 +1554,6 @@ extern void build_options(bool screen); char *profile_level = NULL; int opt; poptContext pc; - bool print_build_options = False; struct server_id main_server_id = {0}; struct poptOption long_options[] = { POPT_AUTOHELP @@ -1657,7 +1656,8 @@ extern void build_options(bool screen); while((opt = poptGetNextOpt(pc)) != -1) { switch (opt) { case 'b': - print_build_options = True; + build_options(true); /* Display output to screen as well as debug */ + exit(0); break; default: d_fprintf(stderr, "\nInvalid option %s: %s\n\n", @@ -1674,11 +1674,6 @@ extern void build_options(bool screen); log_stdout = True; } - if (print_build_options) { - build_options(True); /* Display output to screen as well as debug */ - exit(0); - } - #ifdef HAVE_SETLUID /* needed for SecureWare on SCO */ setluid(0);