Date: Wed, 15 Jun 2022 15:39:28 GMT From: Mark Johnston <markj@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 9a964ad56182 - main - loader: Relax the check in is_kernphys_relocatable() Message-ID: <202206151539.25FFdS3o085447@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9a964ad56182740ea09b87f7e6db4197c6756e48 commit 9a964ad56182740ea09b87f7e6db4197c6756e48 Author: Mark Johnston <markj@FreeBSD.org> AuthorDate: 2022-06-15 14:47:13 +0000 Commit: Mark Johnston <markj@FreeBSD.org> CommitDate: 2022-06-15 15:39:10 +0000 loader: Relax the check in is_kernphys_relocatable() The check fails in kernels compiled with KASAN because AddressSanitizer inserts redzones around global variables, so the size of the "kernphys" symbol is 32 rather than 8. Thus we fall back to copying even though it's not necessary. Simply remove the size check. I didn't want to extend the symbol size check since there's no guarantee that AddressSanitizer will always emit 32 bytes for "kernphys". Reviewed by: kib MFC after: 1 month Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D35448 --- stand/common/load_elf.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/stand/common/load_elf.c b/stand/common/load_elf.c index 4a6c1d5f4e7f..fd9985f51bf9 100644 --- a/stand/common/load_elf.c +++ b/stand/common/load_elf.c @@ -211,8 +211,7 @@ is_kernphys_relocatable(elf_file_t ef) { Elf_Sym sym; - return (__elfN(lookup_symbol)(ef, "kernphys", &sym, STT_OBJECT) == 0 && - sym.st_size == 8); + return (__elfN(lookup_symbol)(ef, "kernphys", &sym, STT_OBJECT) == 0); } #endif
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202206151539.25FFdS3o085447>