fts: fix cloexec races
commitb1f55699e4ca1e66987385edeff6859672e5a070
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 12 Aug 2017 18:20:41 +0000 (12 11:20 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 12 Aug 2017 18:36:10 +0000 (12 11:36 -0700)
tree187fc1a6482e649b7a3d93ec950b023ae67ac3aa
parent3fae50e084ff1ebc15f5a7dd6a6216080ab65476
fts: fix cloexec races

* lib/fts.c [!_LIBC]: Do not include dirent--.h, unistd--.h, cloexec.h.
(opendirat, diropen): Use O_CLOEXEC instead of set_cloexec_flag.
(fts_build): Use F_DUPD_CLOEXEC rinstad of set_cloexec_flag.
(fd_ring_check): Set cloexec flag on new file descriptors.
(fts_build, fd_ring_check): While we’re at it, make sure the
resulting file descriptor is not 0, 1, or 2, since that is easy.
* modules/fts (Depends-on): Remove cloexec, dirent-safer, dup,
fcntl-safer, unistd-safer.  Add fcntl.
ChangeLog
lib/fts.c
modules/fts