Date: Fri, 31 Jan 2025 18:37:53 GMT From: Jessica Clarke <jrtc27@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 4015ff43cbbe - main - vm: Fix overflow issues in vm_page_startup Message-ID: <202501311837.50VIbr5w019791@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=4015ff43cbbe819316104258da6a79bef76e52c2 commit 4015ff43cbbe819316104258da6a79bef76e52c2 Author: Jessica Clarke <jrtc27@FreeBSD.org> AuthorDate: 2025-01-31 18:37:27 +0000 Commit: Jessica Clarke <jrtc27@FreeBSD.org> CommitDate: 2025-01-31 18:37:27 +0000 vm: Fix overflow issues in vm_page_startup Firstly, pagecount is a u_long so we should ensure j is the same for the sake of 64-bit systems. Secondly, ptoa is just a macro, and does not cast its argument, so in order to handle PAE systems correctly we need to cast j to vm_paddr_t (the type of startp). Fixes: 0078df5f0258 ("vm_phys: reduce touching of page->pool fields") --- sys/vm/vm_page.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index 961b32da6599..f0e3fc73fb34 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -836,9 +836,10 @@ vm_page_startup(vm_offset_t vaddr) m = vm_phys_seg_paddr_to_vm_page(seg, startp); vm_page_init_page(m, startp, segind, pool); if (pool == VM_FREEPOOL_DEFAULT) { - for (int j = 1; j < pagecount; j++) { + for (u_long j = 1; j < pagecount; j++) { vm_page_init_page(&m[j], - startp + ptoa(j), segind, pool); + startp + ptoa((vm_paddr_t)j), + segind, pool); } } vmd = VM_DOMAIN(seg->domain);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202501311837.50VIbr5w019791>