diff options
| author | Andrew Gallatin <gallatin@FreeBSD.org> | 2000-01-29 06:31:27 +0000 |
|---|---|---|
| committer | Andrew Gallatin <gallatin@FreeBSD.org> | 2000-01-29 06:31:27 +0000 |
| commit | 2f970b91c77a3e63a2f3af468e6fdad2264cd2f3 (patch) | |
| tree | 7f46c85209befdc12d46c871622be16a2d490283 | |
| parent | 6dbccd6e0043ce3f560fc616eec6b8243bb4e4df (diff) | |
Notes
| -rw-r--r-- | sys/alpha/osf1/osf1_misc.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/alpha/osf1/osf1_misc.c b/sys/alpha/osf1/osf1_misc.c index be49993f90eb..1fcb381409e5 100644 --- a/sys/alpha/osf1/osf1_misc.c +++ b/sys/alpha/osf1/osf1_misc.c @@ -1320,13 +1320,15 @@ osf1_wait4(p, uap) int error; caddr_t sg; struct osf1_rusage *orusage, oru; - struct rusage *rusage, ru; + struct rusage *rusage = NULL, ru; - sg = stackgap_init(); - rusage = stackgap_alloc(&sg, sizeof(struct rusage)); orusage = SCARG(uap, rusage); - SCARG(uap, rusage) = (struct osf1_rusage *)rusage; - if ((error = wait4(p, (struct wait_args *)uap) != 0)) + if (orusage) { + sg = stackgap_init(); + rusage = stackgap_alloc(&sg, sizeof(struct rusage)); + SCARG(uap, rusage) = (struct osf1_rusage *)rusage; + } + if ((error = wait4(p, (struct wait_args *)uap))) return error; if (orusage && (error = copyin(rusage, &ru, sizeof(ru)) == 0)){ TV_CP(ru.ru_utime, oru.ru_utime); |
