freebsd-skq/libexec
Konstantin Belousov 1c70d00733 Right now, the rtld prefork hook locks the rtld bind lock in the read
mode.  This allows the binder to be functional in the child after the
fork (assuming no lazy loading of a filter is needed), but other rtld
services which require write lock on rtld_bind_lock cause deadlock, if
called by child.

Change the _rtld_atfork() to lock the bind lock in write mode, making
the rtld fully functional after the fork.

Pre-resolve the symbols which are called by the libthr' fork()
interposer, since dynamic resolution causes deadlock due to the
rtld_bind_lock already owned in the write mode.

Reported and tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
2014-05-24 10:23:06 +00:00
..
atf Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
atrun Fix releasing the lock in the parent atrun process after the queue 2014-04-17 16:00:26 +00:00
bootpd NO_MAN= has been deprecated in favor of MAN= for some time, go ahead 2014-04-13 05:21:56 +00:00
casper NO_MAN= has been deprecated in favor of MAN= for some time, go ahead 2014-04-13 05:21:56 +00:00
comsat Remove the 3rd clause ("advertising clause") of the BSD license as 2014-02-17 22:27:32 +00:00
dma Lower warning level when built with gcc 2014-02-21 14:14:48 +00:00
dma-mbox-create NO_MAN= has been deprecated in favor of MAN= for some time, go ahead 2014-04-13 05:21:56 +00:00
fingerd Remove the 3rd clause ("advertising clause") of the BSD license as 2014-02-17 22:27:32 +00:00
ftpd Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
getty ttys(5): Pseudo-terminals are not listed and the network keyword is obsolete. 2014-03-09 22:38:11 +00:00
mail.local Since clang 3.2 now has an option to suppress warnings about implicitly 2013-02-16 20:17:31 +00:00
mknetid Remove the 3rd clause ("advertising clause") of the BSD license as 2014-02-17 22:27:32 +00:00
pppoed In libexec/pppoed/pppoed.c, use the correct printf length modifier for a 2011-12-16 16:07:39 +00:00
rbootd Remove the 3rd clause ("advertising clause") of the BSD license as 2014-02-17 22:27:32 +00:00
revnetgroup Remove the 3rd clause ("advertising clause") of the BSD license as 2014-02-17 22:27:32 +00:00
rlogind Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +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 Remove the 3rd clause ("advertising clause") of the BSD license as 2014-02-17 22:27:32 +00:00
rpc.rusersd Remove the 3rd clause ("advertising clause") of the BSD license as 2014-02-17 22:27:32 +00:00
rpc.rwalld Remove the 3rd clause ("advertising clause") of the BSD license as 2014-02-17 22:27:32 +00:00
rpc.sprayd Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00
rshd Remove the 3rd clause ("advertising clause") of the BSD license as 2014-02-17 22:27:32 +00:00
rtld-aout More -Wmissing-variable-declarations fixes. 2012-10-19 14:49:42 +00:00
rtld-elf Right now, the rtld prefork hook locks the rtld bind lock in the read 2014-05-24 10:23:06 +00:00
save-entropy 1. Use install -d to create the entropy_dir if missing so that we can do it 2012-09-04 16:00:51 +00:00
smrsh Since clang 3.2 now has an option to suppress warnings about implicitly 2013-02-16 20:17:31 +00:00
talkd Remove the 3rd clause ("advertising clause") of the BSD license as 2014-02-17 22:27:32 +00:00
tcpd Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
telnetd Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
tests Build and install the atf tests. 2013-11-08 14:33:41 +00:00
tftp-proxy Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00
tftpd Remove the 3rd clause ("advertising clause") of the BSD license as 2014-02-17 22:27:32 +00:00
ulog-helper NO_MAN= has been deprecated in favor of MAN= for some time, go ahead 2014-04-13 05:21:56 +00:00
ypxfr Consistently set RPCGEN_CPP when running rpcgen, so the C preprocessor 2012-02-07 09:27:07 +00:00
Makefile Use src.opts.mk in preference to bsd.own.mk except where we need stuff 2014-05-06 04:22:01 +00:00
Makefile.inc Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00