Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-8]: src/external/bsd/top/dist/machine Pull up following revision(...



details:   https://anonhg.NetBSD.org/src/rev/0b334566b93e
branches:  netbsd-8
changeset: 851784:0b334566b93e
user:      martin <martin%NetBSD.org@localhost>
date:      Sat Jun 09 15:40:05 2018 +0000

description:
Pull up following revision(s) (requested by kamil in ticket #872):

        external/bsd/top/dist/machine/m_netbsd.c: revision 1.20

Fix read of unitialized array elements in top(1)

The cp_old array is allocated with malloc(3) and its pointer is passed to=
percentages64().

In this function there happens a calculation of total_change, which value=
depends on the value inside the unitialized cp_old[] array.

WARNING: MemorySanitizer: use-of-uninitialized-value
/usr/src/external/bsd/top/bin/../dist/machine/m_netbsd.c:1341:6
/usr/src/external/bsd/top/bin/../dist/machine/m_netbsd.c:478:65
SUMMARY: MemorySanitizer: use-of-uninitialized-value
/usr/src/external/bsd/top/bin/../dist/machine/m_netbsd.c:1341:6 in percentages64
Exiting

Fix this issue by changling malloc(3) with calloc(3).

Detected with Memory Sanitizer during the integration of sanitizers with
the NetBSD basesystem.

Reported by <Yang Zheng>

diffstat:

 external/bsd/top/dist/machine/m_netbsd.c |  8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diffs (33 lines):

diff -r c6106511af24 -r 0b334566b93e external/bsd/top/dist/machine/m_netbsd.c
--- a/external/bsd/top/dist/machine/m_netbsd.c  Sat Jun 09 15:37:57 2018 +0000
+++ b/external/bsd/top/dist/machine/m_netbsd.c  Sat Jun 09 15:40:05 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: m_netbsd.c,v 1.19 2016/12/26 12:46:31 leot Exp $       */
+/*     $NetBSD: m_netbsd.c,v 1.19.6.1 2018/06/09 15:40:05 martin Exp $ */
 
 /*
  * top - a top users display for Unix
@@ -37,12 +37,12 @@
  *             Andrew Doran <ad%NetBSD.org@localhost>
  *
  *
- * $Id: m_netbsd.c,v 1.19 2016/12/26 12:46:31 leot Exp $
+ * $Id: m_netbsd.c,v 1.19.6.1 2018/06/09 15:40:05 martin Exp $
  */
 #include <sys/cdefs.h>
 
 #ifndef lint
-__RCSID("$NetBSD: m_netbsd.c,v 1.19 2016/12/26 12:46:31 leot Exp $");
+__RCSID("$NetBSD: m_netbsd.c,v 1.19.6.1 2018/06/09 15:40:05 martin Exp $");
 #endif
 
 #include <sys/param.h>
@@ -335,7 +335,7 @@
                ncpu = 1;
 
        cpu_states = malloc(sizeof(cpu_states[0]) * CPUSTATES * ncpu);
-       cp_old = malloc(sizeof(cp_old[0]) * CPUSTATES * ncpu);
+       cp_old = calloc(CPUSTATES * ncpu, sizeof(cp_old[0]));
        cp_diff = malloc(sizeof(cp_diff[0]) * CPUSTATES * ncpu);
        if (cpu_states == NULL || cp_time == NULL || cp_old == NULL ||
            cp_diff == NULL) {



Home | Main Index | Thread Index | Old Index