diff options
author | Rich Felker <dalias@aerifal.cx> | 2011-06-26 22:39:34 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2011-06-26 22:39:34 -0400 |
commit | 9e17b71fa658f102ecb2f210534070a2328dd6c9 (patch) | |
tree | c7139574b12397b83807dc81bfd80e835f05a3ef /src/ldso/dynlink.c | |
parent | 06933cc72445e12ee46b2930659eb5db0f9d6a43 (diff) | |
download | musl-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/dynlink.c')
-rw-r--r-- | src/ldso/dynlink.c | 1 |
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); |