summaryrefslogtreecommitdiff
path: root/src/ldso
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-06-26 22:39:34 -0400
committerRich Felker <dalias@aerifal.cx>2011-06-26 22:39:34 -0400
commit9e17b71fa658f102ecb2f210534070a2328dd6c9 (patch)
treec7139574b12397b83807dc81bfd80e835f05a3ef /src/ldso
parent06933cc72445e12ee46b2930659eb5db0f9d6a43 (diff)
downloadmusl-9e17b71fa658f102ecb2f210534070a2328dd6c9.tar.gz
musl-9e17b71fa658f102ecb2f210534070a2328dd6c9.tar.bz2
musl-9e17b71fa658f102ecb2f210534070a2328dd6c9.tar.xz
musl-9e17b71fa658f102ecb2f210534070a2328dd6c9.zip
fix stale pointer issue in dynamic linker with dlopen
Diffstat (limited to 'src/ldso')
-rw-r--r--src/ldso/dynlink.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c
index 62dd9db7..9a0697c8 100644
--- a/src/ldso/dynlink.c
+++ b/src/ldso/dynlink.c
@@ -473,6 +473,7 @@ void *__dynlink(int argc, char **argv, size_t *got)
*libc->prev->next = *libc;
libc = libc->prev->next;
if (libc->next) libc->next->prev = libc;
+ if (tail == &lib) tail = libc;
} else {
free_all(head);
free(sys_path);