From: Jim Warner Date: Sat, 2 Jun 2018 05:00:00 +0000 (-0500) Subject: top: ensure sane rcfile values for the remaining stuff X-Git-Tag: v4.0.0~559 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c314f9f953afd76a396ce2bf8c969f01b1079b12;p=procps-ng top: ensure sane rcfile values for the remaining stuff 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 --- diff --git a/top/top.c b/top/top.c index e6973550..09496d0e 100644 --- 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)