From da36ff2b8d98680eda009e1f076f7b63a5b70edc Mon Sep 17 00:00:00 2001 From: Jim Warner Date: Sun, 15 May 2022 00:00:00 -0500 Subject: [PATCH] top: needed 'Ctrl' bottom window fixes were discovered As it turns out, some of the 'environ' strings are big enough to overrun the initial buffer sizes. And, while no real harm was done (other than to silently truncate the output), this patch will increase the buffer size. While we're at it. we will normalize a few more buffer declarations along with correcting a couple typos too. Signed-off-by: Jim Warner --- top/top.c | 12 ++++++------ top/top.h | 3 +++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/top/top.c b/top/top.c index 1597d4c0..5ba6a571 100644 --- a/top/top.c +++ b/top/top.c @@ -4758,7 +4758,7 @@ static void forest_begin (WIN_t *q) { eu_TREE_ADD (u_int): where a children's tics stored (maybe) | */ for (i = 0; i < Hide_tot; i++) { - // if have xtra-procps-debug.h, cannpt use PID_VAL w/ assignment | + // if have xtra-procps-debug.h, cannot use PID_VAL w/ assignment | #define rSv(E,T,X) Tree_ppt[X]->head[E].result.T #define rSv_Pid(X) rSv(EU_PID, s_int, X) #define rSv_Lvl(X) rSv(eu_TREE_LVL, s_int, X) @@ -4859,7 +4859,7 @@ static inline const char *forest_display (const WIN_t *q, int idx) { #define rSv_Lvl PID_VAL(eu_TREE_LVL, s_int, p) #define rSv_Hid PID_VAL(eu_TREE_HID, s_ch, p) #ifndef SCROLLVAR_NO - static char buf[1024*64*2]; // the same as libray's max buffer size + static char buf[MAXBUFSIZ]; #else static char buf[ROWMINSIZ]; #endif @@ -4918,12 +4918,12 @@ static void bot_do (const char *str, int focus) { /* * This guy draws that bottom window's header | * then parses/arranges to show the contents. | - * ( returns the number of elements printed ) | */ + * ( returns relative # of elements printed ) | */ static int bot_focus (const char *hdr, const char *str) { #define maxRSVD ( Screen_rows - 1 ) - static char sav[BIGBUFSIZ*2]; + static char sav[BOTBUFSIZ]; const char *end, *beg; - char tmp[SCREENMAX]; + char tmp[BIGBUFSIZ]; int n, x; if (str) { @@ -5119,7 +5119,7 @@ static void bot_pick_toggle (void) { Bot_what = BOT_MENU_ON; Bot_indx = 0; Bot_item[0] = BOT_DELIMIT; - Bot_name = (char*)"a menu, please choose among the following ..."; + Bot_name = (char*)"a menu, please choose among the following, then press ..."; Bot_func = bot_pick_show; Bot_task = PID_VAL(EU_PID, s_int, Curwin->ppt[Curwin->begtask]); } diff --git a/top/top.h b/top/top.h index b1367f77..7c9713eb 100644 --- a/top/top.h +++ b/top/top.h @@ -141,6 +141,9 @@ char *strcasestr(const char *haystack, const char *needle); #define LRGBUFSIZ 512 #define OURPATHSZ 1024 #define BIGBUFSIZ 2048 +#define BOTBUFSIZ 16384 + // next is same as library's max buffer size +#define MAXBUFSIZ (1024*64*2) /* in addition to the actual display data, our row might have to accommodate many termcap/color transitions - these definitions ensure we have room */ #define ROWMINSIZ ( SCREENMAX + 8 * (CAPBUFSIZ + CLRBUFSIZ) )