svn commit: r336756 - head/usr.bin/top
Daichi GOTO
daichi at FreeBSD.org
Fri Jul 27 07:05:51 UTC 2018
Author: daichi
Date: Fri Jul 27 07:05:50 2018
New Revision: 336756
URL: https://svnweb.freebsd.org/changeset/base/336756
Log:
top(1): fix a buffer overflow copying states to display while they were incremented
- fix an AddressSanitizer error
Submitted by: devnexen at gmail.com
Reviewed by: eadler
Approved by: gnn (mentor)
Differential Revision: https://reviews.freebsd.org/D16183
Modified:
head/usr.bin/top/display.c
Modified: head/usr.bin/top/display.c
==============================================================================
--- head/usr.bin/top/display.c Fri Jul 27 05:40:03 2018 (r336755)
+++ head/usr.bin/top/display.c Fri Jul 27 07:05:50 2018 (r336756)
@@ -420,6 +420,7 @@ i_cpustates(int *states)
int value;
const char * const *names;
const char *thisname;
+ int *hstates = states;
int cpu;
for (cpu = 0; cpu < num_cpus; cpu++) {
@@ -453,6 +454,7 @@ for (cpu = 0; cpu < num_cpus; cpu++) {
}
/* copy over values into "last" array */
+ states = hstates;
memcpy(lcpustates, states, num_cpustates * sizeof(int) * num_cpus);
}
@@ -462,6 +464,7 @@ u_cpustates(int *states)
int value;
const char * const *names;
const char *thisname;
+ int *hstates = states;
int *lp;
int *colp;
int cpu;
@@ -504,6 +507,8 @@ for (cpu = 0; cpu < num_cpus; cpu++) {
colp++;
}
}
+
+ states = hstates;
}
void
More information about the svn-src-head
mailing list