[PATCH] mmap/mmap: Fix integer overflow in binary search
Wanda Phinode <[email protected]> Thu, 15 Jan 2026 01:22:27 +0100
| Newsgroups | org.gnu.grub-devel |
|---|---|
| Message-ID | <[email protected]> |
The integer overflow triggered for simple masks in the "badram" command, such as "badram 0x0000000012340000,0xfffffffffffffff8". This resulted in an infinite loop, locking up the machine. Signed-off-by: Wanda Phinode <[email protected]> --- It seems this one has been known for a while: see eg. https://unix.stackexchange.com/questions/746164/grub-hangs-itself-with-64bit-memtest86-badram-pattern grub-core/mmap/mmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/mmap/mmap.c b/grub-core/mmap/mmap.c index 7c7d3911c..d348f3e0d 100644 --- a/grub-core/mmap/mmap.c +++ b/grub-core/mmap/mmap.c @@ -409,7 +409,7 @@ badram_iter (grub_uint64_t addr, grub_uint64_t size, */ while (high - low > 1) { - cur = (low + high) / 2; + cur = low + (high - low) / 2; if (fill_mask (entry, cur) >= addr) high = cur; else -- 2.52.0 _______________________________________________ Grub-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/grub-devel