From d3203d99dd7f4508447ea3b4b056a9d134229d10 Mon Sep 17 00:00:00 2001 From: Jim Warner Date: Wed, 9 Sep 2020 00:00:00 -0500 Subject: [PATCH] top: fix potential SEGV when no tasks were displayable 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 Signed-off-by: Jim Warner --- NEWS | 1 + top/top.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/NEWS b/NEWS index eacc1d5e..d616162c 100644 --- 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 diff --git a/top/top.c b/top/top.c index fb06c2ad..7732adfd 100644 --- a/top/top.c +++ b/top/top.c @@ -6045,6 +6045,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 (!PIDSmaxt) return 1; // 1 for the column header if (CHKw(q, Show_FOREST)) forest_begin(q);