diff options
author | alc <alc@FreeBSD.org> | 2008-09-21 18:01:34 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2008-09-21 18:01:34 +0000 |
commit | 409b7f1ce025a8a8dbd698dae2fb9901beb427da (patch) | |
tree | 6607a529cf1ad5d1b5289fdd0a898cd4d67fc900 /sys/vm | |
parent | cb1985818d7401b18c3e74e6ef8d091d2d5e7e1e (diff) | |
download | FreeBSD-src-409b7f1ce025a8a8dbd698dae2fb9901beb427da.zip FreeBSD-src-409b7f1ce025a8a8dbd698dae2fb9901beb427da.tar.gz |
Prevent an integer overflow in vm_pageout_page_stats() on machines with a
large number of physical pages.
PR: 126158
Submitted by: Dmitry Tejblum
MFC after: 3 days
Diffstat (limited to 'sys/vm')
-rw-r--r-- | sys/vm/vm_pageout.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c index de17632..49abe42 100644 --- a/sys/vm/vm_pageout.c +++ b/sys/vm/vm_pageout.c @@ -1280,7 +1280,8 @@ vm_pageout_page_stats() pcount = cnt.v_active_count; fullintervalcount += vm_pageout_stats_interval; if (fullintervalcount < vm_pageout_full_stats_interval) { - tpcount = (vm_pageout_stats_max * cnt.v_active_count) / cnt.v_page_count; + tpcount = (int64_t)vm_pageout_stats_max * cnt.v_active_count / + cnt.v_page_count; if (pcount > tpcount) pcount = tpcount; } else { |