]> granicus.if.org Git - procps-ng/commitdiff
top: tweak that recent enhancement to startup defaults
authorJim Warner <james.warner@comcast.net>
Sun, 7 Jan 2018 06:00:00 +0000 (00:00 -0600)
committerCraig Small <csmall@enc.com.au>
Mon, 12 Feb 2018 09:58:31 +0000 (20:58 +1100)
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 <james.warner@comcast.net>
top/top.c

index c89b18b9605af24aec8e16d831266970a32509de..25d5ec887c727a939ee58a3eb03a21c43ab8cde8 100644 (file)
--- 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;
       }
    }