HomeFreeBSD

Set mm before passing it to the UEFI firmware

Description

Set mm before passing it to the UEFI firmware

When reading the UEFI memory map we pass in a pointer to the memory to
hold the map. Unfortunately it wasn't initialised before the first use
so clang decided it was undefined behaviour so the entire loop was
removed. This leads to everything in bi_load after this to also be
removed as dead code.

The next function after bi_load in the binary is efi_copy_init. The
above caused us to enter efi_copy_init with a return address of the
start of the function. Because of this it would enter an infinite
loop of calling the function, allocating memory, then returning to
the start of the function.

PR: 264021
(cherry picked from commit 0d6600b579be769b85f049ef421023316f21b5c3)

Details

Provenance
andrewAuthored on May 21 2022, 10:45 AM
Parents
rGc74a6c3038ea: Use getpagesize in gcore to find the page size
Branches
Unknown
Tags
Unknown