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