freebsd-dev/libexec
Jilles Tjoelker e194282943 rtld: Fix fd leak with parallel dlopen and fork/exec.
Rtld did not set FD_CLOEXEC on its internal file descriptors; therefore,
such a file descriptor may be passed to a process created by another thread
running in parallel to dlopen() or fdlopen().

No other threads are expected to be running during parsing of the hints
and libmap files but the file descriptors need not be passed to child
processes so add O_CLOEXEC there as well.

This change will break fdlopen() (as used by OpenPAM) on kernels without
F_DUPFD_CLOEXEC (added in July). Note that running new userland on old
kernels is not supported.

Reviewed by:	kib
2012-11-04 21:42:24 +00:00
..
atf Add ATF to the build. This is may be a bit rought around the egdes, 2012-10-22 01:18:41 +00:00
atrun atrun(8): scale default load average limit with the number of CPUs 2012-10-30 19:46:00 +00:00
bootpd Make sure sections are sorted into conventional order. 2012-03-25 16:00:56 +00:00
comsat Bump date missed in r202756 2012-09-14 17:50:42 +00:00
fingerd Forgot to initialize the debug variable. 2010-04-01 13:16:32 +00:00
ftpd Bump date missed in r202756 2012-09-14 17:50:42 +00:00
getty mdoc: terminate quoted strings. 2012-03-26 15:18:14 +00:00
lukemftpd Spelling fixes for libexec/ 2012-01-07 16:09:54 +00:00
mail.local Define several extra macros in bsd.sys.mk and sys/conf/kern.pre.mk, to 2012-02-28 18:30:18 +00:00
mknetid Replace index() and rindex() calls with strchr() and strrchr(). 2012-01-03 18:51:58 +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 Rework all non-contributed files that use `struct timezone'. 2012-09-01 14:45:15 +00:00
revnetgroup Fix two instances of the file names generated by revnetgroup(8). 2012-08-18 09:26:51 +00:00
rlogind Replace index() and rindex() calls with strchr() and strrchr(). 2012-01-03 18:51:58 +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 Rework all non-contributed files that use `struct timezone'. 2012-09-01 14:45:15 +00:00
rpc.rusersd More -Wmissing-variable-declarations fixes. 2012-10-20 10:33:15 +00:00
rpc.rwalld add __unused 2010-12-19 13:05:17 +00:00
rpc.sprayd Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00
rshd None of these programs actually use auth.conf. 2012-06-11 16:18:39 +00:00
rtld-aout More -Wmissing-variable-declarations fixes. 2012-10-19 14:49:42 +00:00
rtld-elf rtld: Fix fd leak with parallel dlopen and fork/exec. 2012-11-04 21:42:24 +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 Define several extra macros in bsd.sys.mk and sys/conf/kern.pre.mk, to 2012-02-28 18:30:18 +00:00
talkd More -Wmissing-variable-declarations fixes. 2012-10-20 10:33:15 +00:00
tcpd Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00
telnetd Convert telnetd(8) to use posix_openpt(2). 2008-11-13 19:05:27 +00:00
tftp-proxy Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00
tftpd Check the return error of set[e][ug]id. While this can never fail in the 2012-10-22 03:07:05 +00:00
ulog-helper Do a better job at determining the username of the login session. 2012-04-19 21:12:08 +00:00
ypxfr Consistently set RPCGEN_CPP when running rpcgen, so the C preprocessor 2012-02-07 09:27:07 +00:00
Makefile Add ATF to the build. This is may be a bit rought around the egdes, 2012-10-22 01:18:41 +00:00
Makefile.inc Make WARNS=6 the default for libexec/. 2010-01-02 09:50:19 +00:00