top: Prevent buffer overflow in calibrate_... REVERTED

Here, again, we have an example of attacking a problem
by addressing the symptoms. And that assertion made in
the original commit message is true if only if someone
had manually (maliciously) edited the top config file.

So let's reverse the original patch & thus prepare for
a proper solution addressing the cause, not a symptom.

Reference(s):
. original qualys patch
0114-top-Prevent-buffer-overflow-in-calibrate_fields.patch
commit c424a64331

Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
Jim Warner 2018-05-18 00:00:00 -05:00 committed by Craig Small
parent c502678715
commit 72ddc1c33d

View File

@ -2130,13 +2130,12 @@ static void calibrate_fields (void) {
w->hdrcaplen = 0; // really only used with USE_X_COLHDR w->hdrcaplen = 0; // really only used with USE_X_COLHDR
// build window's pflgsall array, establish upper bounds for maxpflgs // build window's pflgsall array, establish upper bounds for maxpflgs
for (i = 0, w->totpflgs = 0; i < EU_MAXPFLGS; i++) { for (i = 0, w->totpflgs = 0; i < EU_MAXPFLGS; i++) {
if (FLDviz(w, i) && w->totpflgs < PFLAGSSIZ) { if (FLDviz(w, i)) {
f = FLDget(w, i); f = FLDget(w, i);
#ifdef USE_X_COLHDR #ifdef USE_X_COLHDR
w->pflgsall[w->totpflgs++] = f; w->pflgsall[w->totpflgs++] = f;
#else #else
if (CHKw(w, Show_HICOLS) && f == w->rc.sortindx && if (CHKw(w, Show_HICOLS) && f == w->rc.sortindx) {
w->totpflgs <= PFLAGSSIZ - 3) {
w->pflgsall[w->totpflgs++] = EU_XON; w->pflgsall[w->totpflgs++] = EU_XON;
w->pflgsall[w->totpflgs++] = f; w->pflgsall[w->totpflgs++] = f;
w->pflgsall[w->totpflgs++] = EU_XOF; w->pflgsall[w->totpflgs++] = EU_XOF;