From 6f2e66969abb18a709b2a35ef447a91852df9610 Mon Sep 17 00:00:00 2001 From: Jim Warner Date: Sun, 7 Jan 2018 00:00:00 -0600 Subject: [PATCH] top: tweak that recent enhancement to startup defaults When the new approach for startup defaults was adopted in the reference below, a file might be left open that technically should be closed. This situation arises in the unlikely event the #define RCFILE_NOERR is active. Without that #define, the program will exit early thus rendering the open file issue moot. However, even with that #define there was no real harm with an open file. It simply meant a 2nd FILE struct would have been used when, or if, the rcfile was written via a 'W' command. Anyway, this patch ensures such a file will be closed. Reference(s): . Dec, 2017 - /etc/topdefaultrc introduced commit 55a42ae040eaa19fd3089f56d98ccbde5a9abc3a Signed-off-by: Jim Warner --- top/top.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/top/top.c b/top/top.c index c89b18b9..25d5ec88 100644 --- a/top/top.c +++ b/top/top.c @@ -3309,7 +3309,7 @@ error Hey, fix the above fscanf 'PFLAGSSIZ' dependency ! * line 15 : miscellaneous additional global settings * Any remaining lines are devoted to the 'Inspect Other' feature * 3. 'SYS_RCDEFAULTS' system-wide defaults if 'Rc_name' absent - * format is identical to #2 above */ + * format is identical to #2 above */ static void configs_read (void) { float tmp_delay = DEF_DELAY; const char *p, *p_home; @@ -3347,15 +3347,15 @@ static void configs_read (void) { } if (fp) { - if ((p = config_file(fp, Rc_name, &tmp_delay))) - goto default_or_error; + p = config_file(fp, Rc_name, &tmp_delay); fclose(fp); + if (p) goto default_or_error; } else { fp = fopen(SYS_RCDEFAULTS, "r"); if (fp) { - if ((p = config_file(fp, SYS_RCDEFAULTS, &tmp_delay))) - goto default_or_error; + p = config_file(fp, SYS_RCDEFAULTS, &tmp_delay); fclose(fp); + if (p) goto default_or_error; } }