From c8a5f59c30a4761811bda6e422253ea8210aad8a Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 9 Sep 2021 11:11:03 +0200 Subject: [PATCH 01/40] lib/cmdline: fix --configfile handling of POPT_COMMON_CONFIG_ONLY used by ntlm_auth ntlm_auth only every knew about '--configfile' without the '-s' alias, keep it that way and make sure we actually process the argument via the OPT_CONFIGFILE handling. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Stefan Metzmacher Reviewed-by: Ralph Boehme (cherry picked from commit 8f3ef4e6c5a440c6582f7af268c6c27c8a2273d4) --- lib/cmdline/cmdline.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/cmdline/cmdline.c b/lib/cmdline/cmdline.c index a299a229f69..b22306963a5 100644 --- a/lib/cmdline/cmdline.c +++ b/lib/cmdline/cmdline.c @@ -487,9 +487,8 @@ static struct poptOption popt_common_config[] = { }, { .longName = "configfile", - .shortName = 's', .argInfo = POPT_ARG_STRING, - .val = 's', + .val = OPT_CONFIGFILE, .descrip = "Use alternative configuration file", .argDescrip = "CONFIGFILE", }, -- 2.31.1 From ec7896dac70eb68262dc8062f64c815320293366 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 11:09:25 +0200 Subject: [PATCH 02/40] selftest: fix ---configfile option BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit fdfc475000f606cc9e4ac160350f7ced64749589) --- testprogs/blackbox/test_client_kerberos.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testprogs/blackbox/test_client_kerberos.sh b/testprogs/blackbox/test_client_kerberos.sh index 1a4ed3ae782..8b9d846d0f7 100755 --- a/testprogs/blackbox/test_client_kerberos.sh +++ b/testprogs/blackbox/test_client_kerberos.sh @@ -279,7 +279,7 @@ testit "test smbclient kerberos=required" \ failed=$(expr $failed + 1) kerberos_kinit $samba_kinit ${USERNAME}@${REALM} ${PASSWORD} -cmd='$samba_smbclient //${SERVER}/tmp --use-krb5-ccache=$KRB5CCNAME ---configfile=${CONFIGURATION} -c "ls; quit"' +cmd='$samba_smbclient //${SERVER}/tmp --use-krb5-ccache=$KRB5CCNAME --configfile=${CONFIGURATION} -c "ls; quit"' testit "test smbclient kerberos=required ccache" \ test_smbclient || \ failed=$(expr $failed + 1) -- 2.31.1 From 4b8225936ad29544596128f984483377aeb5c2b6 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 11:21:19 +0200 Subject: [PATCH 03/40] manpages: remove duplicate options from smbclient BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 9a3b7f1338e2947aa1cbf1ae34d0e1e7cb692ee9) --- docs-xml/manpages/smbclient.1.xml | 47 ------------------------------- 1 file changed, 47 deletions(-) diff --git a/docs-xml/manpages/smbclient.1.xml b/docs-xml/manpages/smbclient.1.xml index 48ba59525d6..9b62f46f563 100644 --- a/docs-xml/manpages/smbclient.1.xml +++ b/docs-xml/manpages/smbclient.1.xml @@ -62,53 +62,6 @@ -V|--version -c|--command=STRING - - - smbclient - servicename - password - -?|--help - --usage - -M|--message=HOST - -I|--ip-address=IP - -E|--stderr - -L|--list=HOST - -T|--tar=<c|x>IXFvgbNan - -D|--directory=DIR - -b|--send-buffer=BYTES - -t|--timeout=SECONDS - -p|--port=PORT - -g|--grepable - -q|--quiet - -B|--browse - -d|--debuglevel=DEBUGLEVEL - --debug-stdout - -s|--configfile=CONFIGFILE - --option=name=value - -l|--log-basename=LOGFILEBASE - --leak-report - --leak-report-full - -R|--name-resolve=NAME-RESOLVE-ORDER - -O|--socket-options=SOCKETOPTIONS - -n|--netbiosname=NETBIOSNAME - -W|--workgroup=WORKGROUP - --realm=REALM - --netbios-scope=SCOPE - -m|--maxprotocol=MAXPROTOCOL - -U|--user=[DOMAIN/]USERNAME%[PASSWORD] - -N|--no-pass - --password=STRING - --pw-nt-hash - -A|--authentication-file=FILE - -P|--machine-pass - --simple-bind-dn=DN - --use-kerberos=desired|required|off - --use-krb5-ccache=CCACHE - --use-winbind-ccache - --client-protection=sign|encrypt|off - -V|--version - -k|--kerberos=STRING - -- 2.31.1 From e78d63604f0710e754c5b0ea47f8ca3f46fa9b8f Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 11:22:07 +0200 Subject: [PATCH 04/40] lib/cmdline: restore s3 option name --max-protocol for MAXPROTOCOL from 4.14 s4 used --maxprotocol, s3 used --max-protocol. We should continue supporting --max-protocol. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 29910da882d75b20d63714a1365a7b0dba6904a7) --- docs-xml/build/DTD/samba.entities | 6 +++--- docs-xml/manpages/mdsearch.1.xml | 2 +- docs-xml/manpages/net.8.xml | 2 +- docs-xml/manpages/nmblookup.1.xml | 2 +- docs-xml/manpages/rpcclient.1.xml | 2 +- docs-xml/manpages/samba-regedit.8.xml | 2 +- docs-xml/manpages/smbcacls.1.xml | 2 +- docs-xml/manpages/smbclient.1.xml | 2 +- docs-xml/manpages/smbcquotas.1.xml | 2 +- docs-xml/manpages/winexe.1.xml | 2 +- lib/cmdline/cmdline.c | 2 +- source3/utils/net_help_common.c | 2 +- 12 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs-xml/build/DTD/samba.entities b/docs-xml/build/DTD/samba.entities index beff3cb1f6e..0a4a21db63e 100644 --- a/docs-xml/build/DTD/samba.entities +++ b/docs-xml/build/DTD/samba.entities @@ -556,9 +556,9 @@ '> - - -m|--maxprotocol=MAXPROTOCOL + -m|--max-protocol=MAXPROTOCOL The value of the parameter (a string) is the highest @@ -577,7 +577,7 @@ --leak-report-full -R|--name-resolve=NAME-RESOLVE-ORDER -O|--socket-options=SOCKETOPTIONS - -m|--maxprotocol=MAXPROTOCOL + -m|--max-protocol=MAXPROTOCOL -n|--netbiosname=NETBIOSNAME --netbios-scope=SCOPE -W|--workgroup=WORKGROUP diff --git a/docs-xml/manpages/net.8.xml b/docs-xml/manpages/net.8.xml index aade21a5a5a..1bd82933137 100644 --- a/docs-xml/manpages/net.8.xml +++ b/docs-xml/manpages/net.8.xml @@ -32,7 +32,7 @@ --leak-report-full -R|--name-resolve=NAME-RESOLVE-ORDER -O|--socket-options=SOCKETOPTIONS - -m|--maxprotocol=MAXPROTOCOL + -m|--max-protocol=MAXPROTOCOL -n|--netbiosname=NETBIOSNAME --netbios-scope=SCOPE -W|--workgroup=WORKGROUP diff --git a/docs-xml/manpages/nmblookup.1.xml b/docs-xml/manpages/nmblookup.1.xml index 9ac602cbd59..08b0882504f 100644 --- a/docs-xml/manpages/nmblookup.1.xml +++ b/docs-xml/manpages/nmblookup.1.xml @@ -40,7 +40,7 @@ --leak-report-full -R|--name-resolve=NAME-RESOLVE-ORDER -O|--socket-options=SOCKETOPTIONS - -m|--maxprotocol=MAXPROTOCOL + -m|--max-protocol=MAXPROTOCOL -n|--netbiosname=NETBIOSNAME --netbios-scope=SCOPE -W|--workgroup=WORKGROUP diff --git a/docs-xml/manpages/rpcclient.1.xml b/docs-xml/manpages/rpcclient.1.xml index 16fbe9207e4..7c0c380cd8d 100644 --- a/docs-xml/manpages/rpcclient.1.xml +++ b/docs-xml/manpages/rpcclient.1.xml @@ -34,7 +34,7 @@ --leak-report-full -R|--name-resolve=NAME-RESOLVE-ORDER -O|--socket-options=SOCKETOPTIONS - -m|--maxprotocol=MAXPROTOCOL + -m|--max-protocol=MAXPROTOCOL -n|--netbiosname=NETBIOSNAME --netbios-scope=SCOPE -W|--workgroup=WORKGROUP diff --git a/docs-xml/manpages/samba-regedit.8.xml b/docs-xml/manpages/samba-regedit.8.xml index aa2668e869e..2cda0c00bdb 100644 --- a/docs-xml/manpages/samba-regedit.8.xml +++ b/docs-xml/manpages/samba-regedit.8.xml @@ -30,7 +30,7 @@ --leak-report-full -R|--name-resolve=NAME-RESOLVE-ORDER -O|--socket-options=SOCKETOPTIONS - -m|--maxprotocol=MAXPROTOCOL + -m|--max-protocol=MAXPROTOCOL -n|--netbiosname=NETBIOSNAME --netbios-scope=SCOPE -W|--workgroup=WORKGROUP diff --git a/docs-xml/manpages/smbcacls.1.xml b/docs-xml/manpages/smbcacls.1.xml index 715308bf73d..9cc2d66a898 100644 --- a/docs-xml/manpages/smbcacls.1.xml +++ b/docs-xml/manpages/smbcacls.1.xml @@ -48,7 +48,7 @@ --leak-report-full -R|--name-resolve=NAME-RESOLVE-ORDER -O|--socket-options=SOCKETOPTIONS - -m|--maxprotocol=MAXPROTOCOL + -m|--max-protocol=MAXPROTOCOL -n|--netbiosname=NETBIOSNAME --netbios-scope=SCOPE -W|--workgroup=WORKGROUP diff --git a/docs-xml/manpages/smbclient.1.xml b/docs-xml/manpages/smbclient.1.xml index 9b62f46f563..40f9d896e30 100644 --- a/docs-xml/manpages/smbclient.1.xml +++ b/docs-xml/manpages/smbclient.1.xml @@ -43,7 +43,7 @@ --leak-report-full -R|--name-resolve=NAME-RESOLVE-ORDER -O|--socket-options=SOCKETOPTIONS - -m|--maxprotocol=MAXPROTOCOL + -m|--max-protocol=MAXPROTOCOL -n|--netbiosname=NETBIOSNAME --netbios-scope=SCOPE -W|--workgroup=WORKGROUP diff --git a/docs-xml/manpages/smbcquotas.1.xml b/docs-xml/manpages/smbcquotas.1.xml index 0d9b6d69e29..b5ce53ce31b 100644 --- a/docs-xml/manpages/smbcquotas.1.xml +++ b/docs-xml/manpages/smbcquotas.1.xml @@ -38,7 +38,7 @@ --leak-report-full -R|--name-resolve=NAME-RESOLVE-ORDER -O|--socket-options=SOCKETOPTIONS - -m|--maxprotocol=MAXPROTOCOL + -m|--max-protocol=MAXPROTOCOL -n|--netbiosname=NETBIOSNAME --netbios-scope=SCOPE -W|--workgroup=WORKGROUP diff --git a/docs-xml/manpages/winexe.1.xml b/docs-xml/manpages/winexe.1.xml index a7768424dd2..ddce91e3fa8 100644 --- a/docs-xml/manpages/winexe.1.xml +++ b/docs-xml/manpages/winexe.1.xml @@ -34,7 +34,7 @@ --leak-report-full -R|--name-resolve=NAME-RESOLVE-ORDER -O|--socket-options=SOCKETOPTIONS - -m|--maxprotocol=MAXPROTOCOL + -m|--max-protocol=MAXPROTOCOL -n|--netbiosname=NETBIOSNAME --netbios-scope=SCOPE -W|--workgroup=WORKGROUP diff --git a/lib/cmdline/cmdline.c b/lib/cmdline/cmdline.c index b22306963a5..40292a6a332 100644 --- a/lib/cmdline/cmdline.c +++ b/lib/cmdline/cmdline.c @@ -690,7 +690,7 @@ static struct poptOption popt_common_connection[] = { .argDescrip = "SOCKETOPTIONS", }, { - .longName = "maxprotocol", + .longName = "max-protocol", .shortName = 'm', .argInfo = POPT_ARG_STRING, .val = 'm', diff --git a/source3/utils/net_help_common.c b/source3/utils/net_help_common.c index fc6ce913f6d..a861d3ffd14 100644 --- a/source3/utils/net_help_common.c +++ b/source3/utils/net_help_common.c @@ -64,7 +64,7 @@ int net_common_flags_usage(struct net_context *c, int argc, const char **argv) d_printf(_("\t-R|--name-resolve=NAME-RESOLVE-ORDER\tUse these name " "resolution services only\n")); d_printf(_("\t-O|--socket-options=SOCKETOPTIONS\tsocket options to use\n")); - d_printf(_("\t-m|--maxprotocol=MAXPROTOCOL\t\tSet max protocol level\n")); + d_printf(_("\t-m|--max-protocol=MAXPROTOCOL\t\tSet max protocol level\n")); d_printf(_("\t-n|--netbiosname=NETBIOSNAME\t\tPrimary netbios name\n")); d_printf(_("\t--netbios-scope=SCOPE\t\t\tUse this Netbios scope\n")); d_printf(_("\t-W|--workgroup=WORKGROUP\t\tSet the workgroup name\n")); -- 2.31.1 From 868d8da69373cf32e1a1feafd2286b96be9f9a2c Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 11:29:35 +0200 Subject: [PATCH 05/40] selftest: remove unsupported smbcacls option --get BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 09fd46aa1cb6c1e24948b7d370a4851191b205b2) --- python/samba/tests/blackbox/smbcacls.py | 2 +- python/samba/tests/blackbox/smbcacls_propagate_inhertance.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/python/samba/tests/blackbox/smbcacls.py b/python/samba/tests/blackbox/smbcacls.py index 172cc56e73d..608e2c918af 100644 --- a/python/samba/tests/blackbox/smbcacls.py +++ b/python/samba/tests/blackbox/smbcacls.py @@ -120,7 +120,7 @@ import os def file_ace_check(self, remotepath, ace): smbcacls_args = self.build_test_cmd("smbcacls", - ["//%s/%s" % (self.server, self.share), "--get", + ["//%s/%s" % (self.server, self.share), remotepath]) try: output = self.check_output(smbcacls_args) diff --git a/python/samba/tests/blackbox/smbcacls_propagate_inhertance.py b/python/samba/tests/blackbox/smbcacls_propagate_inhertance.py index ed8455a6bf8..a7be768a9c9 100644 --- a/python/samba/tests/blackbox/smbcacls_propagate_inhertance.py +++ b/python/samba/tests/blackbox/smbcacls_propagate_inhertance.py @@ -886,7 +886,7 @@ import os self.smb_cacls(["--propagate-inheritance", "--set", dir_acl_str, self.oi_dir]) - out = self.smb_cacls(["--get", self.oi_dir]) + out = self.smb_cacls([self.oi_dir]) #count the ACL(s) nacls = len([i for i in out.decode().split("\n") if i.startswith("ACL")]) -- 2.31.1 From 5d197dd75f9d58414c88533552a78d8ad785dded Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 9 Sep 2021 16:45:37 +0200 Subject: [PATCH 06/40] smbclient: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Pair-Programmed-With: Stefan Metzmacher Signed-off-by: Ralph Boehme Signed-off-by: Stefan Metzmacher (cherry picked from commit d179c4f49b37dbcd04197b8cc31933e19dd8ac9a) --- source3/client/client.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source3/client/client.c b/source3/client/client.c index b20ac986dc9..98425048f4b 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -6536,7 +6536,11 @@ int main(int argc,char *argv[]) break; case 'B': return(do_smb_browse()); - + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From 2de2a6ef89d17bd2932b04ca71e0bf439cbb3273 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Thu, 9 Sep 2021 18:14:36 +0200 Subject: [PATCH 07/40] texpect: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit c87cc09315a169300e57a58b88587e54fcf29d8f) --- lib/texpect/texpect.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/texpect/texpect.c b/lib/texpect/texpect.c index 5657efa44d1..1a6ebf486ae 100644 --- a/lib/texpect/texpect.c +++ b/lib/texpect/texpect.c @@ -388,7 +388,13 @@ int main(int argc, const char **argv) } while ((optidx = poptGetNextOpt(pc)) != -1) { - ;; + switch (optidx) { + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(optidx)); + poptPrintUsage(pc, stderr, 0); + exit(1); + } } instruction_file = poptGetArg(pc); -- 2.31.1 From 732ae59506399dff01279cd7af64444951e3e3ae Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 05:46:27 +0200 Subject: [PATCH 08/40] smbstatus: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 4053a59d8dc95ff4de2f6f5c50f7007b6456141f) --- source3/utils/status.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source3/utils/status.c b/source3/utils/status.c index 778af6d97ad..a9288170009 100644 --- a/source3/utils/status.c +++ b/source3/utils/status.c @@ -754,6 +754,11 @@ int main(int argc, const char *argv[]) case OPT_RESOLVE_UIDS: resolve_uids = true; break; + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(c)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From b4474b4dcc74049b7ba4a2399d8f6377da8d5aaf Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 05:50:07 +0200 Subject: [PATCH 09/40] s4/smbclient: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 6845051266a785bc26356e296bd716162e8a133e) --- source4/client/client.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source4/client/client.c b/source4/client/client.c index f7c14e009d1..c961965ec4c 100644 --- a/source4/client/client.c +++ b/source4/client/client.c @@ -3460,6 +3460,11 @@ int main(int argc, char *argv[]) case 'b': ctx->io_bufsize = MAX(1, atoi(poptGetOptArg(pc))); break; + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From 36ed1372e15687feafac8a0dce02069c2d13b678 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Thu, 9 Sep 2021 18:15:51 +0200 Subject: [PATCH 10/40] nmblookup: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 98c977f44b6086e2c5cec52451078a6ade81d4a8) --- libcli/nbt/tools/nmblookup.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libcli/nbt/tools/nmblookup.c b/libcli/nbt/tools/nmblookup.c index 689240f90a4..6ca38faa863 100644 --- a/libcli/nbt/tools/nmblookup.c +++ b/libcli/nbt/tools/nmblookup.c @@ -433,6 +433,11 @@ int main(int argc, const char *argv[]) case OPT_CASE_SENSITIVE: options.case_sensitive = true; break; + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From 0c7f073222c50298d946caf922c7a6702a1a25f2 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 06:30:45 +0200 Subject: [PATCH 11/40] source3/lib/smbconf: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 08512e3a54180253445a16e976dd4f6ef4f2a799) --- source3/lib/smbconf/testsuite.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/source3/lib/smbconf/testsuite.c b/source3/lib/smbconf/testsuite.c index fa97a52132a..1dd7eecf24e 100644 --- a/source3/lib/smbconf/testsuite.c +++ b/source3/lib/smbconf/testsuite.c @@ -290,6 +290,7 @@ int main(int argc, const char **argv) bool ret; poptContext pc; TALLOC_CTX *mem_ctx = talloc_stackframe(); + int opt; struct poptOption long_options[] = { POPT_COMMON_SAMBA @@ -317,7 +318,15 @@ int main(int argc, const char **argv) goto done; } - while(poptGetNextOpt(pc) != -1) { } + while ((opt = poptGetNextOpt(pc)) != -1) { + switch (opt) { + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); + } + } poptFreeContext(pc); -- 2.31.1 From 6efb2dcfb6dc54fac36d7e0b67395e1eed87f87f Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 06:56:36 +0200 Subject: [PATCH 12/40] s3/param: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit d5f360723349c26a50472188e4f299def5b82742) --- source3/param/test_lp_load.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/source3/param/test_lp_load.c b/source3/param/test_lp_load.c index b25a54798f8..2c6a5c8891b 100644 --- a/source3/param/test_lp_load.c +++ b/source3/param/test_lp_load.c @@ -27,6 +27,7 @@ int main(int argc, const char **argv) poptContext pc; char *count_str = NULL; int i, count = 1; + int opt; bool ok; struct poptOption long_options[] = { @@ -70,7 +71,15 @@ int main(int argc, const char **argv) } poptSetOtherOptionHelp(pc, "[OPTION...] "); - while(poptGetNextOpt(pc) != -1); + while ((opt = poptGetNextOpt(pc)) != -1) { + switch (opt) { + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); + } + } if (poptPeekArg(pc)) { config_file = poptGetArg(pc); -- 2.31.1 From 9b549c38a806b7f5440308b9cb14c34a01c86322 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:01:56 +0200 Subject: [PATCH 13/40] rpcclient: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 6afa1b3485cef59676dbccf0276bdfa289e009b4) --- source3/rpcclient/rpcclient.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source3/rpcclient/rpcclient.c b/source3/rpcclient/rpcclient.c index 92d200e94e4..99220e3549e 100644 --- a/source3/rpcclient/rpcclient.c +++ b/source3/rpcclient/rpcclient.c @@ -1196,6 +1196,12 @@ static NTSTATUS process_cmd(struct cli_credentials *creds, result = 1; goto done; } + break; + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From d26d5d36cb036797347a878eeef351d72418a9d2 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:03:21 +0200 Subject: [PATCH 14/40] pdbtest: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit e3c5516dc578aee25aaaac1ab7a66ede9d313be0) --- source3/torture/pdbtest.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/source3/torture/pdbtest.c b/source3/torture/pdbtest.c index 1a95a3c8646..146320ff453 100644 --- a/source3/torture/pdbtest.c +++ b/source3/torture/pdbtest.c @@ -554,6 +554,7 @@ int main(int argc, const char **argv) struct samu *in = NULL; NTSTATUS rv; int i; + int opt; struct timeval tv; bool error = False; struct passwd *pwd; @@ -593,7 +594,15 @@ int main(int argc, const char **argv) poptSetOtherOptionHelp(pc, "backend[:settings] username"); - while(poptGetNextOpt(pc) != -1); + while ((opt = poptGetNextOpt(pc)) != -1) { + switch (opt) { + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); + } + } poptFreeContext(pc); -- 2.31.1 From cfcfeb16a2470dcfe3f70030f9b2808362881f0d Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:04:21 +0200 Subject: [PATCH 15/40] vfstest: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 96ab7909bd9eea14ba3aad535c28d53c184341a2) --- source3/torture/vfstest.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/source3/torture/vfstest.c b/source3/torture/vfstest.c index 5c0ef2d073d..3f01c431289 100644 --- a/source3/torture/vfstest.c +++ b/source3/torture/vfstest.c @@ -469,6 +469,7 @@ int main(int argc, const char *argv[]) struct cmd_set **cmd_set; struct conn_struct_tos *c = NULL; struct vfs_state *vfs; + int opt; int i; char *filename = NULL; char *cwd = NULL; @@ -531,8 +532,15 @@ int main(int argc, const char *argv[]) exit(1); } - while(poptGetNextOpt(pc) != -1); - + while ((opt = poptGetNextOpt(pc)) != -1) { + switch (opt) { + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); + } + } poptFreeContext(pc); -- 2.31.1 From f86eb2646a094bee1aaeefb029cd52c8d8f35a87 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:05:02 +0200 Subject: [PATCH 16/40] s3/async-tracker: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 4056bebf05f4d1e0bfcbc5fe53d63b3bab9e031f) --- source3/utils/async-tracker.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source3/utils/async-tracker.c b/source3/utils/async-tracker.c index fff85989473..7b6c2c01986 100644 --- a/source3/utils/async-tracker.c +++ b/source3/utils/async-tracker.c @@ -267,6 +267,11 @@ int main(int argc, const char **argv) case 't': state->loop_type = TEVENT_LOOP; break; + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(c)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From bcc93a9723aa1afe0b1d3abcb5bb824c38c874ac Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:05:58 +0200 Subject: [PATCH 17/40] log2pcaphex: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 72a6cf1a8a2903518488cff1bdadd001c5b0b281) --- source3/utils/log2pcaphex.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source3/utils/log2pcaphex.c b/source3/utils/log2pcaphex.c index f8b5246a43e..2ee2f82af98 100644 --- a/source3/utils/log2pcaphex.c +++ b/source3/utils/log2pcaphex.c @@ -334,6 +334,11 @@ int main(int argc, const char **argv) while((opt = poptGetNextOpt(pc)) != -1) { switch (opt) { + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From 0e31852efb8b2b09b93ce57d731b9ef16bb02a77 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:06:54 +0200 Subject: [PATCH 18/40] mvxattr: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit c84916fef5520795d54a29e8e8e2817dd8322f30) --- source3/utils/mvxattr.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source3/utils/mvxattr.c b/source3/utils/mvxattr.c index 7fad10bc60f..dd8da7911b8 100644 --- a/source3/utils/mvxattr.c +++ b/source3/utils/mvxattr.c @@ -194,6 +194,11 @@ int main(int argc, const char *argv[]) goto done; } break; + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(c)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From 6e3b8ef95ba522648b802b0cebdc35f9fe698517 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:07:48 +0200 Subject: [PATCH 19/40] nmblookup: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit ff6a16806f6a030a36179b1e9db699ae72670db4) --- source3/utils/nmblookup.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source3/utils/nmblookup.c b/source3/utils/nmblookup.c index 86902941746..a78967fdb88 100644 --- a/source3/utils/nmblookup.c +++ b/source3/utils/nmblookup.c @@ -389,6 +389,11 @@ int main(int argc, const char *argv[]) case 'T': translate_addresses = !translate_addresses; break; + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From 6a1059efa38453713bc1865a43ba1cf283a853bb Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:08:37 +0200 Subject: [PATCH 20/40] ntlm_auth: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 5536e7981c3902014e91cdfa5bd9a17276e41be7) --- source3/utils/ntlm_auth.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source3/utils/ntlm_auth.c b/source3/utils/ntlm_auth.c index 2ac8d3cba5c..f887d6814d0 100644 --- a/source3/utils/ntlm_auth.c +++ b/source3/utils/ntlm_auth.c @@ -2757,6 +2757,12 @@ enum { require_membership_of_sid = require_membership_of; } break; + + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From 3eaa7341a763ade97125a4f280a20cc56e03b4b0 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:08:59 +0200 Subject: [PATCH 21/40] pdbedit: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit bcc4756d8293e452d09a6a73005302eddb6c1f28) --- source3/utils/pdbedit.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source3/utils/pdbedit.c b/source3/utils/pdbedit.c index 7d42b9def85..4fdcc3ee428 100644 --- a/source3/utils/pdbedit.c +++ b/source3/utils/pdbedit.c @@ -1139,6 +1139,11 @@ int main(int argc, const char **argv) case 'C': account_policy_value_set = True; break; + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From 54d72fa827a417f0710b74f3b96a22adbb4ec391 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:09:34 +0200 Subject: [PATCH 22/40] profiles: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 372adfda9f0aa8f91db6b5dc4357d848baa9fab3) --- source3/utils/profiles.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source3/utils/profiles.c b/source3/utils/profiles.c index 96b8c9dd82e..ab1eb26e148 100644 --- a/source3/utils/profiles.c +++ b/source3/utils/profiles.c @@ -296,6 +296,11 @@ int main( int argc, const char *argv[] ) } break; + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From db7193d4897a8fd6a171b1be3e62cf19f81b2b52 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:10:39 +0200 Subject: [PATCH 23/40] regedit: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 246d4f7b934fbfa75d967aee1ff6bd64866995d1) --- source3/utils/regedit.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/source3/utils/regedit.c b/source3/utils/regedit.c index aa5f215e375..c7144ee1c70 100644 --- a/source3/utils/regedit.c +++ b/source3/utils/regedit.c @@ -801,7 +801,13 @@ int main(int argc, char **argv) } while ((opt = poptGetNextOpt(pc)) != -1) { - /* TODO */ + switch (opt) { + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); + } } poptFreeContext(pc); -- 2.31.1 From 08f54d75152efe19a00148c0d3ba578cca2849ee Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:11:07 +0200 Subject: [PATCH 24/40] sharesec: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 5a2b4ba059809a1e16124bf448a9398822fe5c80) --- source3/utils/sharesec.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source3/utils/sharesec.c b/source3/utils/sharesec.c index cec1da1e94d..9b8064de702 100644 --- a/source3/utils/sharesec.c +++ b/source3/utils/sharesec.c @@ -515,6 +515,11 @@ int main(int argc, const char *argv[]) case OPT_VIEW_ALL: mode = SMB_ACL_VIEW_ALL; break; + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From 1ab31d61baf2e84bfe274fd79d8418421b7ba65c Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:11:43 +0200 Subject: [PATCH 25/40] smbcacls: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 3755304b6efb98739aca3aa121c095302b09e631) --- source3/utils/smbcacls.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source3/utils/smbcacls.c b/source3/utils/smbcacls.c index a2d6b6c849d..661d4eacf3e 100644 --- a/source3/utils/smbcacls.c +++ b/source3/utils/smbcacls.c @@ -1786,6 +1786,11 @@ int main(int argc, char *argv[]) case 'x': want_mxac = true; break; + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } if (inheritance && !the_acl) { -- 2.31.1 From b9c598beefe076fef3f8bc9e2acf288169dcbe07 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:12:21 +0200 Subject: [PATCH 26/40] smbcquotas: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 46a0da16710f99f33780d030557562e1a52a8cba) --- source3/utils/smbcquotas.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source3/utils/smbcquotas.c b/source3/utils/smbcquotas.c index 8c54ad8e1e8..748334a04a6 100644 --- a/source3/utils/smbcquotas.c +++ b/source3/utils/smbcquotas.c @@ -723,6 +723,11 @@ int main(int argc, char *argv[]) lp_set_cmdline("client max protocol", poptGetOptArg(pc)); break; + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From 283bd8afe7d32c7ad73bcd470892f9709343582d Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:12:57 +0200 Subject: [PATCH 27/40] smbget: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit d841457aedd8715ceacb20af8f1ae42cbf8ebf49) --- source3/utils/smbget.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source3/utils/smbget.c b/source3/utils/smbget.c index 250f02efec4..19958f35afa 100644 --- a/source3/utils/smbget.c +++ b/source3/utils/smbget.c @@ -974,6 +974,11 @@ int main(int argc, char **argv) case 'v': opt.verbose = true; break; + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(c)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From 3fdab7b770aa9f2ba1171c959974aa49d5d3da77 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:13:48 +0200 Subject: [PATCH 28/40] smbtree: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 5562674a2188d4e11fbdfcbed7bf1fba02af9e90) --- source3/utils/smbtree.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/source3/utils/smbtree.c b/source3/utils/smbtree.c index 87ced242565..dc5220e5f8b 100644 --- a/source3/utils/smbtree.c +++ b/source3/utils/smbtree.c @@ -102,6 +102,7 @@ int main(int argc, char *argv[]) struct smbc_dirent *dirent = NULL; bool ok; int ret, result = 1; + int opt; int debuglevel; /* Initialise samba stuff */ @@ -129,7 +130,16 @@ int main(int argc, char *argv[]) exit(1); } - while(poptGetNextOpt(pc) != -1); + while((opt = poptGetNextOpt(pc)) != -1) { + switch (opt) { + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); + } + } + samba_cmdline_burn(argc, argv); debuglevel = DEBUGLEVEL; -- 2.31.1 From c2effc3b1ac65ba22a87d9c92379b1018596c4db Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:14:40 +0200 Subject: [PATCH 29/40] split_tokens: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit b851d48277f226ff825b4aaf17483e2d91c54451) --- source3/utils/split_tokens.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/source3/utils/split_tokens.c b/source3/utils/split_tokens.c index 6693f010edf..ab48dc5c9c1 100644 --- a/source3/utils/split_tokens.c +++ b/source3/utils/split_tokens.c @@ -32,6 +32,7 @@ int main(int argc, const char *argv[]) poptContext pc; char *buff; TALLOC_CTX *ctx = talloc_stackframe(); + int opt; bool ok; struct poptOption long_options[] = { @@ -64,7 +65,15 @@ int main(int argc, const char *argv[]) poptSetOtherOptionHelp(pc, "[OPTION...] "); - while(poptGetNextOpt(pc) != -1); + while((opt = poptGetNextOpt(pc)) != -1) { + switch (opt) { + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); + } + } sequence = poptGetArg(pc); -- 2.31.1 From 5cd0ae2b9f11040d362d952b8a204f1f9aebde38 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:15:49 +0200 Subject: [PATCH 30/40] testparm: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit ac292ec428ea8ef6702e028c15077818000dfa87) --- source3/utils/testparm.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/source3/utils/testparm.c b/source3/utils/testparm.c index 59ca8b700f3..98bcc219b1e 100644 --- a/source3/utils/testparm.c +++ b/source3/utils/testparm.c @@ -672,6 +672,7 @@ static void do_per_share_checks(int s) const char *config_file = NULL; const struct loadparm_substitution *lp_sub = loadparm_s3_global_substitution(); + int opt; int s; static int silent_mode = False; static int show_all_parameters = False; @@ -776,7 +777,15 @@ static void do_per_share_checks(int s) poptSetOtherOptionHelp(pc, "[OPTION...] [host-name] [host-ip]"); - while(poptGetNextOpt(pc) != -1); + while ((opt = poptGetNextOpt(pc)) != -1) { + switch (opt) { + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); + } + } if (show_all_parameters) { show_parameter_list(); -- 2.31.1 From 082bd87b920a952697b61f9ac5067cd73ec16ee0 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:16:30 +0200 Subject: [PATCH 31/40] s4/cifsdd: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 08532b3d2e0f66ee524401b8b939b3af31b6b7cd) --- source4/client/cifsdd.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/source4/client/cifsdd.c b/source4/client/cifsdd.c index de14132a2df..812698e49db 100644 --- a/source4/client/cifsdd.c +++ b/source4/client/cifsdd.c @@ -669,7 +669,13 @@ int main(int argc, char *argv[]) } while ((i = poptGetNextOpt(pctx)) != -1) { - ; + switch (i) { + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pctx, 0), poptStrerror(i)); + poptPrintUsage(pctx, stderr, 0); + exit(1); + } } for (dd_args = poptGetArgs(pctx); dd_args && *dd_args; ++dd_args) { -- 2.31.1 From 5b548ec20f7f072246db8e745bc1e15b0d26cfcc Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:21:31 +0200 Subject: [PATCH 32/40] s4/regdiff: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 5c75b5bdeb9b39843f115fe07f1a44689af3fcc5) --- source4/lib/registry/tools/regdiff.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source4/lib/registry/tools/regdiff.c b/source4/lib/registry/tools/regdiff.c index 299f0e96531..aab7b68944c 100644 --- a/source4/lib/registry/tools/regdiff.c +++ b/source4/lib/registry/tools/regdiff.c @@ -142,6 +142,11 @@ int main(int argc, char **argv) remote2 = poptGetOptArg(pc); } break; + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From 2c4aedc0b6556ae82835533aa5a1a55c572b92c4 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:22:12 +0200 Subject: [PATCH 33/40] s4/regpatch: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 604ce3d85a879aa50c045b1f36c0580748b72eb7) --- source4/lib/registry/tools/regpatch.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source4/lib/registry/tools/regpatch.c b/source4/lib/registry/tools/regpatch.c index 281a7fef43a..2be78d143ef 100644 --- a/source4/lib/registry/tools/regpatch.c +++ b/source4/lib/registry/tools/regpatch.c @@ -77,6 +77,13 @@ int main(int argc, char **argv) } while((opt = poptGetNextOpt(pc)) != -1) { + switch (opt) { + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); + } } ev_ctx = s4_event_context_init(NULL); -- 2.31.1 From 76f5fae192999b31a3ef59e664ccfd5dc34cc561 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:23:59 +0200 Subject: [PATCH 34/40] s4/regshell: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit ac86779fe490318a943ab90e5d117537e839b55f) --- source4/lib/registry/tools/regshell.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source4/lib/registry/tools/regshell.c b/source4/lib/registry/tools/regshell.c index 79aa546a4dd..4d65038d2ae 100644 --- a/source4/lib/registry/tools/regshell.c +++ b/source4/lib/registry/tools/regshell.c @@ -606,6 +606,13 @@ int main(int argc, char **argv) } while((opt = poptGetNextOpt(pc)) != -1) { + switch (opt) { + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); + } } poptFreeContext(pc); -- 2.31.1 From 10231ad44448a819959610ed70b845a6e8c5fcb7 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:25:30 +0200 Subject: [PATCH 35/40] s4/regtree: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit ecb27e02e113c597f952457e8a7803325c4c620e) --- source4/lib/registry/tools/regtree.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source4/lib/registry/tools/regtree.c b/source4/lib/registry/tools/regtree.c index 6e1634b1242..1f0dac2c5f3 100644 --- a/source4/lib/registry/tools/regtree.c +++ b/source4/lib/registry/tools/regtree.c @@ -154,6 +154,13 @@ int main(int argc, char **argv) } while((opt = poptGetNextOpt(pc)) != -1) { + switch (opt) { + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); + } } poptFreeContext(pc); -- 2.31.1 From 4db886623377a4530c3ced281250373e41cb93b7 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:26:01 +0200 Subject: [PATCH 36/40] s4/torture/gentest: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit f6be1c18bf78db9e45be953d95ef8581daed5b4b) --- source4/torture/gentest.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source4/torture/gentest.c b/source4/torture/gentest.c index bc336aac052..d52f754da71 100644 --- a/source4/torture/gentest.c +++ b/source4/torture/gentest.c @@ -3388,6 +3388,11 @@ int main(int argc, const char *argv[]) CRED_SPECIFIED); username_count++; break; + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From f0f85c67ae6889ea369b4e6fbffb5512c0d7e3e0 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:27:13 +0200 Subject: [PATCH 37/40] s4/torture/locktest: don't ignore unknown options BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher (cherry picked from commit 0c47f244312f193c299d5b5b7b00db90364f8c8e) --- source4/torture/locktest.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source4/torture/locktest.c b/source4/torture/locktest.c index 6124f36965b..11701a975bb 100644 --- a/source4/torture/locktest.c +++ b/source4/torture/locktest.c @@ -646,6 +646,11 @@ int main(int argc, const char *argv[]) CRED_SPECIFIED); username_count++; break; + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From a83f32a4ff9d654175edccac149ab8098f9c4ab8 Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 07:27:51 +0200 Subject: [PATCH 38/40] s4/torture/masktest: don't ignore unknown options MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme Reviewed-by: Stefan Metzmacher Autobuild-User(master): Ralph Böhme Autobuild-Date(master): Fri Sep 10 16:02:10 UTC 2021 on sn-devel-184 (cherry picked from commit b053bea0af2b2f059d7ed2c920f283d82339022f) --- source4/torture/masktest.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source4/torture/masktest.c b/source4/torture/masktest.c index d29d18485f7..5b2457a92e9 100644 --- a/source4/torture/masktest.c +++ b/source4/torture/masktest.c @@ -360,6 +360,11 @@ int main(int argc, const char *argv[]) "torture:unclist", poptGetOptArg(pc)); break; + case POPT_ERROR_BADOPT: + fprintf(stderr, "\nInvalid option %s: %s\n\n", + poptBadOption(pc, 0), poptStrerror(opt)); + poptPrintUsage(pc, stderr, 0); + exit(1); } } -- 2.31.1 From ccbbcfa14cbf3f772e7c8b76be72ff3bd751bec4 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 9 Sep 2021 11:13:21 +0200 Subject: [PATCH 39/40] WHATSNEW: clarify the -e and -s handling for ldb tools BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Stefan Metzmacher --- WHATSNEW.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/WHATSNEW.txt b/WHATSNEW.txt index 739a0b319ca..fdadd38e704 100644 --- a/WHATSNEW.txt +++ b/WHATSNEW.txt @@ -131,9 +131,11 @@ is setup to go to a file by default. ### Duplicates in command line utils -ldbadd/ldbsearch/ldbdel/ldbmodify/ldbrename: --e is not available for --editor anymore --s is not used for --configfile anymore +ldbadd/ldbdel/ldbedit/ldbmodify/ldbrename/ldbsearch: +-e is still available as an alias for --editor, + as it used to be. +-s is no longer reported as an alias for --configfile, + it never worked that way as it was shadowed by '-s' for '--scope'. ndrdump: -l is not available for --load-dso anymore -- 2.31.1 From 5af8ddeb137c08b3e3df5610145f965277595e2b Mon Sep 17 00:00:00 2001 From: Ralph Boehme Date: Fri, 10 Sep 2021 18:15:25 +0200 Subject: [PATCH 40/40] WHATSNEW: unknown options now trigger an error in all tools BUG: https://bugzilla.samba.org/show_bug.cgi?id=14828 Signed-off-by: Ralph Boehme --- WHATSNEW.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/WHATSNEW.txt b/WHATSNEW.txt index fdadd38e704..e0c1222b284 100644 --- a/WHATSNEW.txt +++ b/WHATSNEW.txt @@ -104,6 +104,9 @@ These should be stories of the past now. A new command line parser has been implemented with sanity checking. Also the command line interface has been simplified and provides better control for encryption, signing and kerberos. +Previously many tools silently ignored unknown options. To prevent unexpected +behaviour all tools will now consistently reject unknown options. + Also several command line options have a smb.conf variable to control the default now. -- 2.31.1