diff options
author | luoqi <luoqi@FreeBSD.org> | 1999-02-19 19:14:48 +0000 |
---|---|---|
committer | luoqi <luoqi@FreeBSD.org> | 1999-02-19 19:14:48 +0000 |
commit | e0559c2622dd5910cbc4e00c4cf297fddf071801 (patch) | |
tree | f5c87565c07a9e872932b450c33c4564b3d41ef5 /sys/vm | |
parent | fd3fec48014ad97346e4c5f1f527574d04ab0496 (diff) | |
download | FreeBSD-src-e0559c2622dd5910cbc4e00c4cf297fddf071801.zip FreeBSD-src-e0559c2622dd5910cbc4e00c4cf297fddf071801.tar.gz |
Eliminate a possible numerical overflow.
Diffstat (limited to 'sys/vm')
-rw-r--r-- | sys/vm/vm_pageout.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c index 9181635..5f1b56d 100644 --- a/sys/vm/vm_pageout.c +++ b/sys/vm/vm_pageout.c @@ -1422,8 +1422,7 @@ vm_daemon() */ for (p = allproc.lh_first; p != 0; p = p->p_list.le_next) { - quad_t limit; - vm_offset_t size; + vm_pindex_t limit, size; /* * if this is a system process or if we have already @@ -1442,8 +1441,9 @@ vm_daemon() /* * get a limit */ - limit = qmin(p->p_rlimit[RLIMIT_RSS].rlim_cur, - p->p_rlimit[RLIMIT_RSS].rlim_max); + limit = OFF_TO_IDX( + qmin(p->p_rlimit[RLIMIT_RSS].rlim_cur, + p->p_rlimit[RLIMIT_RSS].rlim_max)); /* * let processes that are swapped out really be @@ -1453,10 +1453,10 @@ vm_daemon() if ((p->p_flag & P_INMEM) == 0) limit = 0; /* XXX */ - size = vmspace_resident_count(p->p_vmspace) * PAGE_SIZE; + size = vmspace_resident_count(p->p_vmspace); if (limit >= 0 && size >= limit) { - vm_pageout_map_deactivate_pages(&p->p_vmspace->vm_map, - (vm_pindex_t)(limit >> PAGE_SHIFT) ); + vm_pageout_map_deactivate_pages( + &p->p_vmspace->vm_map, limit); } } } |