]> granicus.if.org Git - procps-ng/commitdiff
top: ensure sane rcfile values for the remaining stuff
authorJim Warner <james.warner@comcast.net>
Sat, 2 Jun 2018 05:00:00 +0000 (00:00 -0500)
committerCraig Small <csmall@enc.com.au>
Sat, 9 Jun 2018 11:35:20 +0000 (21:35 +1000)
This will protect some remaining rcfile variables from
a possible manual editing of top's configuration file.

[ and correct two #error related boo-boos introduced ]
[ with the system default rcfile in the commit shown ]

Reference(s):
. introduced /etc/topdefaultrc
commit 55a42ae040eaa19fd3089f56d98ccbde5a9abc3a

Signed-off-by: Jim Warner <james.warner@comcast.net>
top/top.c

index e69735507603bb16b9a5d32f8b9ae4432c3118d8..09496d0e7751af91d1bd6cc679fdd4c189b26427 100644 (file)
--- a/top/top.c
+++ b/top/top.c
@@ -3247,6 +3247,12 @@ static const char *config_file (FILE *fp, const char *name, float *delay) {
    }
    if (Rc.id < 'a' || Rc.id > RCF_VERSION_ID)
       return p;
+   if (Rc.mode_altscr < 0 || Rc.mode_altscr > 1)
+      return p;
+   if (Rc.mode_irixps < 0 || Rc.mode_irixps > 1)
+      return p;
+   if (tmp_whole < 0)
+      return p;
    // you saw that, right?  (fscanf stickin' it to 'i')
    if (i < 0 || i >= GROUPSMAX)
       return p;
@@ -3264,8 +3270,8 @@ static const char *config_file (FILE *fp, const char *name, float *delay) {
          , w->rc.winname, w->rc.fieldscur))
             return p;
 #if PFLAGSSIZ != 100
- too bad fscanf is not as flexible with his format string as snprintf
-error Hey, fix the above fscanf 'PFLAGSSIZ' dependency !
// too bad fscanf is not as flexible with his format string as snprintf
+ #error Hey, fix the above fscanf 'PFLAGSSIZ' dependency !
 #endif
       // ensure there's been no manual alteration of fieldscur
       for (n = 0 ; n < EU_MAXPFLGS; n++) {
@@ -3278,6 +3284,8 @@ error Hey, fix the above fscanf 'PFLAGSSIZ' dependency !
             return p;
       if (w->rc.sortindx < 0 || w->rc.sortindx >= EU_MAXPFLGS)
          return p;
+      if (w->rc.maxtasks < 0)
+         return p;
       if (w->rc.graph_cpus < 0 || w->rc.graph_cpus > 2)
          return p;
       if (w->rc.graph_mems < 0 || w->rc.graph_mems > 2)
@@ -3287,6 +3295,10 @@ error Hey, fix the above fscanf 'PFLAGSSIZ' dependency !
          , &w->rc.summclr, &w->rc.msgsclr
          , &w->rc.headclr, &w->rc.taskclr))
             return p;
+      if (w->rc.summclr < 0 || w->rc.summclr > 7) return p;
+      if (w->rc.msgsclr < 0 || w->rc.msgsclr > 7) return p;
+      if (w->rc.headclr < 0 || w->rc.headclr > 7) return p;
+      if (w->rc.taskclr < 0 || w->rc.taskclr > 7) return p;
 
       switch (Rc.id) {
          case 'a':                          // 3.2.8 (former procps)