git: 0b6f465fc5a4 - stable/15 - rtld: fix processing of preloaded z_initfirst objects

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Thu, 23 Apr 2026 17:09:34 UTC
The branch stable/15 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=0b6f465fc5a45369246ab29bc366687090baee2f

commit 0b6f465fc5a45369246ab29bc366687090baee2f
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2026-04-16 23:07:43 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2026-04-23 17:08:50 +0000

    rtld: fix processing of preloaded z_initfirst objects
    
    (cherry picked from commit 9b844b495e8e63439ffe523757ac7444a16317af)
---
 libexec/rtld-elf/rtld.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index db5d22dfefdb..aa17041fdc2d 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -2655,6 +2655,11 @@ initlist_add_objects(Obj_Entry *obj, Obj_Entry *tail, Objlist *list,
 			initlist_add_neededs(obj->needed_aux_filtees,
 			    NULL, iflist);
 		objlist_push_tail(iflist, obj);
+
+		/* Recursively process the successor objects. */
+		nobj = globallist_next(obj);
+		if (nobj != NULL && obj != tail)
+			initlist_add_objects(nobj, tail, list, iflist);
 	} else {
 		if (obj->init_scanned)
 			return;