projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add some sanity checks
[unix-history]
/
usr
/
src
/
usr.bin
/
systat
/
pigs.c
diff --git
a/usr/src/usr.bin/systat/pigs.c
b/usr/src/usr.bin/systat/pigs.c
index
a496efd
..
221d8ba
100644
(file)
--- a/
usr/src/usr.bin/systat/pigs.c
+++ b/
usr/src/usr.bin/systat/pigs.c
@@
-1,5
+1,5
@@
#ifndef lint
#ifndef lint
-static char sccsid[] = "@(#)pigs.c 1.
2
(Lucasfilm) %G%";
+static char sccsid[] = "@(#)pigs.c 1.
3
(Lucasfilm) %G%";
#endif
#include "systat.h"
#endif
#include "systat.h"
@@
-140,13
+140,15
@@
initpigs()
if (procp == NULL) {
procp = getw(nlst[X_PROC].n_value);
nproc = getw(nlst[X_NPROC].n_value);
if (procp == NULL) {
procp = getw(nlst[X_PROC].n_value);
nproc = getw(nlst[X_NPROC].n_value);
- kprocp = (struct proc *)malloc(sizeof (*kprocp) * nproc);
}
}
+ if (kprocp == NULL)
+ kprocp = (struct proc *)calloc(nproc, sizeof (struct proc));
if (usrpt != NULL)
return;
usrpt = (struct pte *)nlst[X_USRPT].n_value;
Usrptma = (struct pte *)nlst[X_USRPTMAP].n_value;
if (usrpt != NULL)
return;
usrpt = (struct pte *)nlst[X_USRPT].n_value;
Usrptma = (struct pte *)nlst[X_USRPTMAP].n_value;
- pt = (struct p_times *)malloc(nproc * sizeof (struct p_times));
+ if (pt == NULL)
+ pt = (struct p_times *)calloc(nproc, sizeof (struct p_times));
}
fetchpigs()
}
fetchpigs()
@@
-156,6
+158,16
@@
fetchpigs()
register float time;
register struct proc *pp;
register float time;
register struct proc *pp;
+ if (kprocp == NULL) {
+ kprocp = (struct proc *)calloc(nproc, sizeof (struct proc));
+ if (kprocp == NULL)
+ return;
+ }
+ if (pt == NULL) {
+ pt = (struct p_times *)calloc(nproc, sizeof (struct p_times));
+ if (pt == NULL)
+ return;
+ }
prt = pt;
lseek(kmem, procp, L_SET);
read(kmem, kprocp, sizeof (struct proc) * nproc);
prt = pt;
lseek(kmem, procp, L_SET);
read(kmem, kprocp, sizeof (struct proc) * nproc);