fbset: abort on unknown options. closes 3121
authorDenys Vlasenko <vda.linux@googlemail.com>
Mon, 9 May 2011 01:57:27 +0000 (03:57 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Mon, 9 May 2011 01:57:27 +0000 (03:57 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
util-linux/fbset.c

index 75d41b88223d1b5aff0d9dc07df49162c936c030..3be342481747d42e3a86d7e450bdc4201a00a629 100644 (file)
@@ -402,7 +402,14 @@ int fbset_main(int argc, char **argv)
        argv++;
        argc--;
        for (; argc > 0 && (thisarg = *argv) != NULL; argc--, argv++) {
-               if (thisarg[0] == '-') for (i = 0; i < ARRAY_SIZE(g_cmdoptions); i++) {
+               if (thisarg[0] != '-') {
+                       if (!ENABLE_FEATURE_FBSET_READMODE || argc != 1)
+                               bb_show_usage();
+                       mode = thisarg;
+                       options |= OPT_READMODE;
+                       goto contin;
+               }
+               for (i = 0; i < ARRAY_SIZE(g_cmdoptions); i++) {
                        if (strcmp(thisarg + 1, g_cmdoptions[i].name) != 0)
                                continue;
                        if (argc <= g_cmdoptions[i].param_count)
@@ -471,10 +478,7 @@ int fbset_main(int argc, char **argv)
                        argv += g_cmdoptions[i].param_count;
                        goto contin;
                }
-               if (!ENABLE_FEATURE_FBSET_READMODE || argc != 1)
-                       bb_show_usage();
-               mode = *argv;
-               options |= OPT_READMODE;
+               bb_show_usage();
  contin: ;
        }