Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Jul 2026 15:04:14 +0000
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: 4b0ae7e001a9 - main - stand: Recognize SHT_INIT_ARRAY sections as constructor sections
Message-ID:  <6a57a16e.18312.5285197f@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=4b0ae7e001a97e5449835bb8a2e6c2e6f53aac39

commit 4b0ae7e001a97e5449835bb8a2e6c2e6f53aac39
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2026-07-15 14:58:32 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2026-07-15 14:58:32 +0000

    stand: Recognize SHT_INIT_ARRAY sections as constructor sections
    
    Pass such a section to the kernel using modinfo, otherwise link_elf.c
    won't execute constructors for the file.  This is required for KASAN,
    otherwise redzones for global buffers are not poisoned during boot.
    
    Reviewed by:    kib
    MFC after:      2 weeks
    Sponsored by:   The FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D58244
---
 stand/common/load_elf.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/stand/common/load_elf.c b/stand/common/load_elf.c
index a6ea60c74b84..1c4efb8c4156 100644
--- a/stand/common/load_elf.c
+++ b/stand/common/load_elf.c
@@ -726,7 +726,8 @@ __elfN(loadimage)(struct preloaded_file *fp, elf_file_t ef, uint64_t off)
 		if (shstr) {
 			for (i = 0; i < ehdr->e_shnum; i++) {
 				if (strcmp(shstr + shdr[i].sh_name,
-				    ".ctors") != 0)
+				    ".ctors") != 0 &&
+				    shdr[i].sh_type != SHT_INIT_ARRAY)
 					continue;
 				ctors = shdr[i].sh_addr;
 				file_addmetadata(fp, MODINFOMD_CTORS_ADDR,


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a57a16e.18312.5285197f>