]> granicus.if.org Git - procps-ng/commitdiff
top: fix additional SEGVs if no tasks were displayable
authorJim Warner <james.warner@comcast.net>
Sun, 13 Sep 2020 05:00:00 +0000 (00:00 -0500)
committerCraig Small <csmall@dropbear.xyz>
Wed, 16 Sep 2020 04:26:59 +0000 (14:26 +1000)
This patch is an outgrowth of that commit shown below.

Many additional potential segmentation faults might be
encountered if interactive commands are opened up to a
user when a '-p' switch has a single non-existent pid.

[ always the 'k', 'L', 'r', 'Y' keys & maybe 'v' too ]

So, this patch will restrict such a loser (oops, user)
to a reduced subset of normal commands until he/she/it
quits then restarts top with something to be displayed
or issues the '=' command overriding that '-p' switch.

Reference(s):
commit d3203d99dd7f4508447ea3b4b056a9d134229d10

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

index 7732adfd44e575e1720e3a2f8c576973fd77186b..535f945490b189b3993ff76c2d8b130e66644e8f 100644 (file)
--- a/top/top.c
+++ b/top/top.c
@@ -5474,6 +5474,8 @@ static void do_key (int ch) {
          write_rcfile();
          goto all_done;
       default:               // and now, the real work...
+         // and just in case 'Monpids' is active but matched no processes ...
+         if (!PIDSmaxt && ch != '=') goto all_done;
          for (i = 0; i < MAXTBL(key_tab); ++i)
             if (strchr(key_tab[i].keys, ch)) {
                key_tab[i].func(ch);