summaryrefslogtreecommitdiffstats
path: root/libexec/rtld-elf
diff options
context:
space:
mode:
authorkan <kan@FreeBSD.org>2016-01-20 23:26:35 +0000
committerkan <kan@FreeBSD.org>2016-01-20 23:26:35 +0000
commit2f0f7ecf9c84e1ddfaef9b64b8fb4ac1cdf44247 (patch)
tree2b299c0f951d2019e6e2c53086652ca32b97cef1 /libexec/rtld-elf
parent75cd33d7043b32c962710ac655078f1926f56954 (diff)
downloadFreeBSD-src-2f0f7ecf9c84e1ddfaef9b64b8fb4ac1cdf44247.zip
FreeBSD-src-2f0f7ecf9c84e1ddfaef9b64b8fb4ac1cdf44247.tar.gz
Fix initlist_add_object invocation parameters.
The tail parameter should point to the last object for which dependencies should be processed. In most cases, this is the object itself.
Diffstat (limited to 'libexec/rtld-elf')
-rw-r--r--libexec/rtld-elf/rtld.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index 06690ff..863fe25 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -2016,7 +2016,7 @@ initlist_add_neededs(Needed_Entry *needed, Objlist *list)
/* Process the current needed object. */
if (needed->obj != NULL)
- initlist_add_objects(needed->obj, globallist_next(needed->obj), list);
+ initlist_add_objects(needed->obj, needed->obj, list);
}
/*
@@ -2039,7 +2039,7 @@ initlist_add_objects(Obj_Entry *obj, Obj_Entry *tail, Objlist *list)
/* Recursively process the successor objects. */
nobj = globallist_next(obj);
- if (nobj != NULL && nobj != tail)
+ if (nobj != NULL && obj != tail)
initlist_add_objects(nobj, tail, list);
/* Recursively process the needed objects. */
@@ -3140,7 +3140,7 @@ dlopen_object(const char *name, int fd, Obj_Entry *refobj, int lo_flags,
*/
} else {
/* Make list of init functions to call. */
- initlist_add_objects(obj, globallist_next(obj), &initlist);
+ initlist_add_objects(obj, obj, &initlist);
}
/*
* Process all no_delete or global objects here, given
OpenPOWER on IntegriCloud