diff options
author | bdrewery <bdrewery@FreeBSD.org> | 2016-07-22 00:43:32 +0000 |
---|---|---|
committer | bdrewery <bdrewery@FreeBSD.org> | 2016-07-22 00:43:32 +0000 |
commit | 5aa045f55578c73f64456b65bede7858f8c3949b (patch) | |
tree | 3ec80ff4e2950f3ff0b617adef92a6986d072310 | |
parent | 0c2ec19b32588d93ff53f3431098e0a8bc85fda0 (diff) | |
download | FreeBSD-src-5aa045f55578c73f64456b65bede7858f8c3949b.zip FreeBSD-src-5aa045f55578c73f64456b65bede7858f8c3949b.tar.gz |
MFC r302908:
Fix dlsym(RTLD_NEXT) handling to only return the next library in last library
cases.
-rw-r--r-- | libexec/rtld-elf/rtld.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c index b97a4e6..8d0938b 100644 --- a/libexec/rtld-elf/rtld.c +++ b/libexec/rtld-elf/rtld.c @@ -3181,7 +3181,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); |