]> 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 08:49:44 +0000 (19:49 +1100)
CHANGES
bin/dig/nslookup.c

diff --git a/CHANGES b/CHANGES
index a05aa09c089673740ce3124d221955d88da4bbd7..2a668d1fefe998730239328b173a7b11b9a80bc2 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]
+
        --- 9.13.6 released ---
 
 5156.  [doc]           Extended and refined the section of the ARM describing
index 163f68d057eef4252002464380ed7dcdedfb4e68..e61de912b2f794ffc193e99c74b97d64b1a1d2d7 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;
                        }