diff options
author | bde <bde@FreeBSD.org> | 1995-10-21 09:18:45 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1995-10-21 09:18:45 +0000 |
commit | ae33f2fb7d58e5f2ee320af6220d77cea80b00c6 (patch) | |
tree | 4a2c35c032b15a6e34f4a4bad80fee66819eddec | |
parent | 75d744090276ebe087e5e5b4728e27ff5aa296e0 (diff) | |
download | FreeBSD-src-ae33f2fb7d58e5f2ee320af6220d77cea80b00c6.zip FreeBSD-src-ae33f2fb7d58e5f2ee320af6220d77cea80b00c6.tar.gz |
Avoid overflow in calcru(). Fixes PR 788.
Submitted by: imdave@synet.net (Dave Bodenstab)
-rw-r--r-- | sys/kern/kern_resource.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/kern_resource.c b/sys/kern/kern_resource.c index 732888d..db58b91 100644 --- a/sys/kern/kern_resource.c +++ b/sys/kern/kern_resource.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)kern_resource.c 8.5 (Berkeley) 1/21/94 - * $Id: kern_resource.c,v 1.11 1995/02/20 19:42:33 guido Exp $ + * $Id: kern_resource.c,v 1.12 1995/05/30 08:05:39 rgrimes Exp $ */ #include <sys/param.h> @@ -487,7 +487,7 @@ calcru(p, up, sp, ip) sec += tv.tv_sec - runtime.tv_sec; usec += tv.tv_usec - runtime.tv_usec; } - u = sec * 1000000 + usec; + u = (u_quad_t) sec * 1000000 + usec; st = (u * st) / tot; sp->tv_sec = st / 1000000; sp->tv_usec = st % 1000000; |