freebsd-skq/libexec
jh c65c4f33f5 If dlclose() is called recursively from a _fini() function, the inner
dlclose() call may unload the object of the outer call prematurely
because objects are unreferenced before _fini() calls.

Fix this by unreferencing objects after calling objlist_call_fini() in
dlclose(). Therefore objlist_call_fini() now calls the fini function if
the reference count of an object is 1. In addition we must restart the
list_fini traversal after every _fini() call because another dlclose()
call might have modified the reference counts.

Add an XXX comment to objlist_call_fini() about possible race with
dlopen().

PR:		133246, 149464
Reviewed by:	kan, kib
2010-12-16 16:56:44 +00:00
..
atrun Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00
bootpd Catch up with kernel using time_uptime to drive ARP timeouts. 2010-12-06 09:39:36 +00:00
comsat Remove stale references to utmp(5) and its corresponding filenames. 2010-01-21 17:25:12 +00:00
fingerd Forgot to initialize the debug variable. 2010-04-01 13:16:32 +00:00
ftpd mdoc: drop redundant .Pp and .LP calls 2010-10-08 12:40:16 +00:00
getty Add a new libc function: cfmakesane(3). 2010-11-02 17:00:56 +00:00
lukemftpd
mail.local Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00
mknetid Fix double ;; 2010-12-06 10:24:06 +00:00
pppoed Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00
rbootd mdoc: use literal text, not a column table to present the 2010-06-02 10:20:31 +00:00
revnetgroup Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00
rlogind Add a new libc function: cfmakesane(3). 2010-11-02 17:00:56 +00:00
rpc.rquotad The NFS quota-reporting RPC uses 32-bit sized fields. We approximate 2010-04-25 00:05:51 +00:00
rpc.rstatd Fixed static linkage. 2010-02-26 09:41:16 +00:00
rpc.rusersd Port all apps in libexec/ from libulog to utmpx. 2010-01-13 18:28:58 +00:00
rpc.rwalld Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00
rpc.sprayd Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00
rshd Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00
rtld-aout ANSIfy ldconfig and the aout bits it still uses from rtld-aout. 2009-12-29 21:07:17 +00:00
rtld-elf If dlclose() is called recursively from a _fini() function, the inner 2010-12-16 16:56:44 +00:00
save-entropy
smrsh Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00
talkd Remove unneeded use of struct timezone. 2010-08-08 02:45:48 +00:00
tcpd Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00
telnetd
tftp-proxy Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00
tftpd Fix typos. 2010-11-09 10:59:09 +00:00
ulog-helper Fixed static linkage. 2010-02-26 09:41:16 +00:00
ypxfr Fix incorrect usage of 'assure' and 'insure'. 2010-08-28 16:32:01 +00:00
Makefile Add a new library: libulog. 2009-12-03 15:48:24 +00:00
Makefile.inc Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00