]> granicus.if.org Git - procps-ng/commitdiff
top: improve unsolicited user input validation
authorJim Warner <james.warner@comcast.net>
Sat, 30 Jun 2012 05:00:33 +0000 (00:00 -0500)
committerCraig Small <csmall@enc.com.au>
Wed, 29 Aug 2012 07:29:17 +0000 (17:29 +1000)
The logic associated with invalid keystrokes was
simplified through some minor reordering.

Signed-off-by: Jim Warner <james.warner@comcast.net>
top/top.c

index 1783ab383128b62a5d8860360de333ea0f3f5e20..2148f16269e22a08f3dcfb7dc76aba0ad93d1e2b 100644 (file)
--- a/top/top.c
+++ b/top/top.c
@@ -3488,16 +3488,11 @@ static void do_key (int ch) {
          for (i = 0; i < MAXTBL(key_tab); ++i)
             if (strchr(key_tab[i].keys, ch)) {
                key_tab[i].func(ch);
-               break;
+               Frames_resize = 1;
+               return;
             }
-
-         if (!(i < MAXTBL(key_tab))) {
-            show_msg(N_txt(UNKNOWN_cmds_txt));
-            return;
-         }
    };
-
-   /* The following assignment will force a rebuild of all column headers and
+   /* Frames_resize above will force a rebuild of all column headers and
       the PROC_FILLxxx flags.  It's NOT simply lazy programming.  Here are
       some keys that COULD require new column headers and/or libproc flags:
          'A' - likely
@@ -3516,7 +3511,8 @@ static void do_key (int ch) {
       ( At this point we have a human being involved and so have all the time )
       ( in the world.  We can afford a few extra cpu cycles every now & then! )
     */
-   Frames_resize = 1;
+
+   show_msg(N_txt(UNKNOWN_cmds_txt));
 } // end: do_key