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:
@@ -2654,6 +2654,11 @@ initlist_add_objects(Obj_Entry *obj, Obj_Entry *tail, Objlist *list,
|
|||||||
initlist_add_neededs(obj->needed_aux_filtees,
|
initlist_add_neededs(obj->needed_aux_filtees,
|
||||||
NULL, iflist);
|
NULL, iflist);
|
||||||
objlist_push_tail(iflist, obj);
|
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 {
|
} else {
|
||||||
if (obj->init_scanned)
|
if (obj->init_scanned)
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user