From: Jim Warner Date: Fri, 5 Jan 2018 06:00:00 +0000 (-0600) Subject: top: tweak that recent enhancement to startup defaults X-Git-Tag: v3.3.13rc1~28 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dfa118b4d5757013d08d52dcd796fdde7dba3034;p=procps-ng 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 3e6a208ae501194fdb39d5f259e327c087dc8c84 Signed-off-by: Jim Warner --- diff --git a/top/top.c b/top/top.c index d05776c2..b398bf37 100644 --- a/top/top.c +++ b/top/top.c @@ -3771,7 +3771,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; @@ -3809,15 +3809,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; } }