1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-17 10:26:15 +00:00
freebsd/libexec/rtld-elf
Konstantin Belousov 12c81769b6 Avoid bind lock recursion.
When dlclose(3) unloads an object with filtees, it recursively calls
dlclose(3) on each filtee in free_needed_filtees().  Introduce
dlclose_locked() helper, called from free_needed_filtees() instead of
dlclose(), and pass the bind lockstate down to avoid recursing.

Reported and tested by:	jhibbits
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2017-03-09 21:05:47 +00:00
..
aarch64 Pull the R_AARCH64_TLSDESC code out into a common function and use them in 2017-01-25 17:35:11 +00:00
amd64 rtld: do not rely on a populated GOT on amd64 2017-01-16 14:49:29 +00:00
arm Adjust r308689 to make rtld compilable with either in-tree or 2016-11-21 14:13:57 +00:00
i386 Adjust r308689 to make rtld compilable with either in-tree or 2016-11-21 14:13:57 +00:00
mips Fully handle the special encoding of GOT[1] on mips64. 2017-02-23 00:02:49 +00:00
powerpc Adjust r308689 to make rtld compilable with either in-tree or 2016-11-21 14:13:57 +00:00
powerpc64 Adjust r308689 to make rtld compilable with either in-tree or 2016-11-21 14:13:57 +00:00
riscv Retire long-broken/unused static rtld support 2016-12-02 14:23:26 +00:00
sparc64 Retire long-broken/unused static rtld support 2016-12-02 14:23:26 +00:00
tests DIRDEPS_BUILD: Add some missing dirctories to the build. 2016-08-31 19:30:59 +00:00
debug.c
debug.h
libmap.c
libmap.h
Makefile Convert absolute links to relative links. 2017-03-07 05:10:38 +00:00
Makefile.depend
malloc.c libexec: minor spelling fixes in comments. 2016-05-01 19:39:23 +00:00
map_object.c
paths.h
rtld_lock.c Fix acquisition of nested write compat rtld locks. 2017-01-10 19:26:55 +00:00
rtld_lock.h
rtld_printf.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
rtld_printf.h
rtld_tls.h
rtld_utrace.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
rtld.1
rtld.c Avoid bind lock recursion. 2017-03-09 21:05:47 +00:00
rtld.h rtld: Ensure that dlopen() cannot obtain a reference on a doomed object. 2016-12-22 17:41:32 +00:00
Symbol.map
xmalloc.c