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
bootpd Catch up with kernel using time_uptime to drive ARP timeouts. 2010-12-06 09:39:36 +00:00
comsat
fingerd
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
mknetid Fix double ;; 2010-12-06 10:24:06 +00:00
pppoed
rbootd
revnetgroup
rlogind Add a new libc function: cfmakesane(3). 2010-11-02 17:00:56 +00:00
rpc.rquotad
rpc.rstatd
rpc.rusersd
rpc.rwalld
rpc.sprayd
rshd
rtld-aout
rtld-elf If dlclose() is called recursively from a _fini() function, the inner 2010-12-16 16:56:44 +00:00
save-entropy
smrsh
talkd
tcpd
telnetd
tftp-proxy
tftpd Fix typos. 2010-11-09 10:59:09 +00:00
ulog-helper
ypxfr
Makefile
Makefile.inc