Cast uvmexp.swpages to long before multiplying by 99 to avoid integer
authorclaudio <claudio@openbsd.org>
Tue, 5 Dec 2023 15:50:45 +0000 (15:50 +0000)
committerclaudio <claudio@openbsd.org>
Tue, 5 Dec 2023 15:50:45 +0000 (15:50 +0000)
overflows on systems with big swap partitions.
OK kettenis@ miod@

sys/uvm/uvm_swap.c

index 1818cc0..02fe95f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: uvm_swap.c,v 1.167 2023/10/27 19:18:53 mpi Exp $      */
+/*     $OpenBSD: uvm_swap.c,v 1.168 2023/12/05 15:50:45 claudio Exp $  */
 /*     $NetBSD: uvm_swap.c,v 1.40 2000/11/17 11:39:39 mrg Exp $        */
 
 /*
@@ -1548,7 +1548,7 @@ uvm_swapisfull(void)
 
        mtx_enter(&uvm_swap_data_lock);
        KASSERT(uvmexp.swpgonly <= uvmexp.swpages);
-       result = (uvmexp.swpgonly >= (uvmexp.swpages * 99 / 100));
+       result = (uvmexp.swpgonly >= ((long)uvmexp.swpages * 99 / 100));
        mtx_leave(&uvm_swap_data_lock);
 
        return result;