summaryrefslogtreecommitdiffstats
path: root/libexec
diff options
context:
space:
mode:
authorbdrewery <bdrewery@FreeBSD.org>2016-07-22 17:24:36 +0000
committerbdrewery <bdrewery@FreeBSD.org>2016-07-22 17:24:36 +0000
commitf2acc91a2a10293e24f37092986ca685dcfa04e4 (patch)
tree460c7ec635f7aac14168c7d5084e71599ce540d8 /libexec
parent4968d3608122f2d60a4c705f95c891c253ab7268 (diff)
downloadFreeBSD-src-f2acc91a2a10293e24f37092986ca685dcfa04e4.zip
FreeBSD-src-f2acc91a2a10293e24f37092986ca685dcfa04e4.tar.gz
MFC r302908:
Fix dlsym(RTLD_NEXT) handling to only return the next library in last library cases. Approved by: re (gjb)
Diffstat (limited to 'libexec')
-rw-r--r--libexec/rtld-elf/rtld.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index 1869194..ca722cf 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -3291,7 +3291,7 @@ do_dlsym(void *handle, const char *name, void *retaddr, const Ver_Entry *ve,
handle == RTLD_SELF) { /* ... caller included */
if (handle == RTLD_NEXT)
obj = globallist_next(obj);
- TAILQ_FOREACH_FROM(obj, &obj_list, next) {
+ for (; obj != NULL; obj = TAILQ_NEXT(obj, next)) {
if (obj->marker)
continue;
res = symlook_obj(&req, obj);
OpenPOWER on IntegriCloud