]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
error out if there are extra command line options
authorMark Andrews <marka@isc.org>
Wed, 23 Jan 2019 06:47:59 +0000 (17:47 +1100)
committerMark Andrews <marka@isc.org>
Thu, 7 Feb 2019 12:44:53 +0000 (23:44 +1100)
(cherry picked from commit f73816ff0fda101ebe61213ed4352c1f245b3329)

CHANGES
bin/dig/nslookup.c

diff --git a/CHANGES b/CHANGES
index b6f9c253410a8eb5a705799fa0810169a8df7541..ab758ad75e60995a43ce2982bbc5cb7df12bc721 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+5157.  [bug]           Nslookup now errors out if there are extra command
+                       line arguments. [GL #207]
+
 5154.  [bug]           dig: process_opt could be called twice on the same
                        message leading to a assertion failure. [GL #860]
 
index ae71d881ddc2958ad20b2581ca6843ddb2296154..b55854d3440739ef93f99d822effe167468cbbd4 100644 (file)
@@ -879,6 +879,23 @@ get_next_command(void) {
        isc_mem_free(mctx, buf);
 }
 
+ISC_PLATFORM_NORETURN_PRE static void
+usage(void) ISC_PLATFORM_NORETURN_POST;
+
+static void
+usage(void) {
+    fprintf(stderr, "Usage:\n");
+    fprintf(stderr,
+"   nslookup [-opt ...]             # interactive mode using default server\n");
+    fprintf(stderr,
+"   nslookup [-opt ...] - server    # interactive mode using 'server'\n");
+    fprintf(stderr,
+"   nslookup [-opt ...] host        # just look up 'host' using default server\n");
+    fprintf(stderr,
+"   nslookup [-opt ...] host server # just look up 'host' using 'server'\n");
+    exit(1);
+}
+
 static void
 parse_args(int argc, char **argv) {
        bool have_lookup = false;
@@ -900,6 +917,9 @@ parse_args(int argc, char **argv) {
                                in_use = true;
                                addlookup(argv[0]);
                        } else {
+                               if (argv[1] != NULL) {
+                                       usage();
+                               }
                                set_nameserver(argv[0]);
                                check_ra = false;
                        }