git: e7219c3818d1 - stable/13 - Set mm before passing it to the UEFI firmware
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 07 Jun 2022 14:23:33 UTC
The branch stable/13 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=e7219c3818d1554830555278a32934c9fb4e7ac3 commit e7219c3818d1554830555278a32934c9fb4e7ac3 Author: Andrew Turner <andrew@FreeBSD.org> AuthorDate: 2022-05-21 10:45:41 +0000 Commit: Andrew Turner <andrew@FreeBSD.org> CommitDate: 2022-06-07 14:20:18 +0000 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) --- stand/efi/loader/bootinfo.c | 1 + 1 file changed, 1 insertion(+) diff --git a/stand/efi/loader/bootinfo.c b/stand/efi/loader/bootinfo.c index bf98105eee93..92ca220e2bf9 100644 --- a/stand/efi/loader/bootinfo.c +++ b/stand/efi/loader/bootinfo.c @@ -350,6 +350,7 @@ bi_load_efi_data(struct preloaded_file *kfp) */ sz = 0; + mm = NULL; /* * Matthew Garrett has observed at least one system changing the