]> granicus.if.org Git - procps-ng/commitdiff
top: fix potential SEGV when no tasks were displayable
authorJim Warner <james.warner@comcast.net>
Wed, 9 Sep 2020 05:00:00 +0000 (00:00 -0500)
committerCraig Small <csmall@dropbear.xyz>
Sun, 13 Sep 2020 00:28:50 +0000 (10:28 +1000)
This patch fixes a nearly decade old bug discovered by
Frederik Deweerdt. His merge request shown below would
be an adequate solution except for iterative overhead.

This alternate patch will represent substantially less
overhead for an admittedly extremely rare possibility.

Reference(s):
https://gitlab.com/procps-ng/procps/-/merge_requests/114

And-thanks-to: Frederik Deweerdt <fdeweerdt@fastly.com>
Signed-off-by: Jim Warner <james.warner@comcast.net>
NEWS
top/top.c

diff --git a/NEWS b/NEWS
index d5937c6aff020332bd0ea3a82af70ff07e22f4d2..514f8efc1b3d5ebfe5d89dceb48975229a73bc71 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -13,6 +13,7 @@ procps-ng NEXT
   * top: add command line 'e' for symmetry with 'E'        issue #165
   * top: add '4' toggle for two abreast cpu display        issue #172
   * top: add '!' toggle for combining multiple cpus
+  * top: fix potential SEGV involving -p switch            merge #114
   * vmstat: Wide mode gives wider proc columns             merge #48
   * watch: Add environment variable for interval           merge #62
 
index e06a61fb4bf345893282881587e6d8435670206c..114793826a76b034912795359e753bb04b0c6d9d 100644 (file)
--- a/top/top.c
+++ b/top/top.c
@@ -6486,6 +6486,8 @@ static int window_show (WIN_t *q, int wmax) {
 
    // Display Column Headings -- and distract 'em while we sort (maybe)
    PUFF("\n%s%s%s", q->capclr_hdr, q->columnhdr, Caps_endline);
+   // and just in case 'Monpids' is active but matched no processes ...
+   if (!Frame_maxtask) return 1;                    // 1 for the column header
 
    if (CHKw(q, Show_FOREST))
       forest_create(q);