rtld: fix processing of preloaded z_initfirst objects

After we found some preloaded z_initfirst object, we must process till
the end of the preload list still, not stopping on the first found
object.

Reported by:	des
Reviewed by:	des, markj, siderop1@netapp.com
Fixes:	78aaab9f1c
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D56466
This commit is contained in:
Konstantin Belousov
2026-04-17 02:07:43 +03:00
parent 4b79ee8eb1
commit 9b844b495e
+5
View File
@@ -2654,6 +2654,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;