PR 21418, ar -N lacks arg check
authorAlan Modra <amodra@gmail.com>
Sun, 23 Apr 2017 08:09:48 +0000 (17:39 +0930)
committerAlan Modra <amodra@gmail.com>
Sun, 23 Apr 2017 11:03:35 +0000 (20:33 +0930)
PR 21418
* ar.c (main): Check -a, -b, -i and -N args are given.

binutils/ChangeLog
binutils/ar.c

index 13a665cd3ed34dad84fdf3f955ad1f355306eeed..eb540fab80a7a1f17e9f127aea07902395c7f4bf 100644 (file)
@@ -1,3 +1,8 @@
+2017-04-23  Alan Modra  <amodra@gmail.com>
+
+       PR 21418
+       * ar.c (main): Check -a, -b, -i and -N args are given.
+
 2017-04-23  Alan Modra  <amodra@gmail.com>
 
        PR 21417
index 8e4d81cc47c94fb8c3cbec43bffa121f3f07eaba..32ac4040c6b5f8ac933dc2bc33722e3a08b08e06 100644 (file)
@@ -776,12 +776,18 @@ main (int argc, char **argv)
       default_deterministic ();
 
       if (postype != pos_default)
-       posname = argv[arg_index++];
+       {
+         posname = argv[arg_index++];
+         if (posname == NULL)
+           fatal (_("missing position arg."));
+       }
 
       if (counted_name_mode)
        {
          if (operation != extract && operation != del)
            fatal (_("`N' is only meaningful with the `x' and `d' options."));
+         if (argv[arg_index] == NULL)
+           fatal (_("`N' missing value."));
          counted_name_counter = atoi (argv[arg_index++]);
          if (counted_name_counter <= 0)
            fatal (_("Value for `N' must be positive."));