Pull up following revision(s) (requested by kamil in ticket #515):
bin/ps/ps.c: revision 1.89 Fix an unitialized memory read bug in ps(1) rawcpu of type int, is declared inside main(){} and it can be passed as uninitialized to setpinfo(). The setpinfo() function has a switch checking the value of rawcpu: if (!rawcpu) pi[i].pcpu /= 1.0 - exp(ki[i].p_swtime * log_ccpu); rawcpu is set to 1 with the command line argument "-C". -C Change the way the CPU percentage is calculated by using a "raw" CPU calculation that ignores "resident" time (this normally has no effect). Bug reproducible with an invocation: "ps u". It hides with "ps uC". Initialize rawcpu by default to 0, before the getopt(3) machinery. Detected with MSan running on NetBSD/amd64. Sponsored by <The NetBSD Foundation>
This commit is contained in:
parent
abf86c08c6
commit
072012476f
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ps.c,v 1.88 2016/12/26 20:52:39 rin Exp $ */
|
||||
/* $NetBSD: ps.c,v 1.88.6.1 2018/02/03 22:11:36 snj Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2000-2008 The NetBSD Foundation, Inc.
|
||||
|
@ -68,7 +68,7 @@ __COPYRIGHT("@(#) Copyright (c) 1990, 1993, 1994\
|
|||
#if 0
|
||||
static char sccsid[] = "@(#)ps.c 8.4 (Berkeley) 4/2/94";
|
||||
#else
|
||||
__RCSID("$NetBSD: ps.c,v 1.88 2016/12/26 20:52:39 rin Exp $");
|
||||
__RCSID("$NetBSD: ps.c,v 1.88.6.1 2018/02/03 22:11:36 snj Exp $");
|
||||
#endif
|
||||
#endif /* not lint */
|
||||
|
||||
|
@ -224,7 +224,7 @@ main(int argc, char *argv[])
|
|||
if (argc > 1)
|
||||
argv[1] = kludge_oldps_options(argv[1]);
|
||||
|
||||
descendancy = fmt = prtheader = wflag = xflg = showlwps = 0;
|
||||
descendancy = fmt = prtheader = wflag = xflg = rawcpu = showlwps = 0;
|
||||
what = KERN_PROC_UID;
|
||||
flag = myuid = getuid();
|
||||
memf = nlistf = swapf = NULL;
|
||||
|
|
Loading…
Reference in New Issue