From 05eb11cbc40a190f73ed1471d97062cabfc37d54 Mon Sep 17 00:00:00 2001 From: Jilles Tjoelker Date: Sat, 29 Sep 2012 11:54:34 +0000 Subject: libc: Use O_CLOEXEC for various internal file descriptors. This fixes a race condition where another thread may fork() before CLOEXEC is set, unintentionally passing the descriptor to the child process. This commit only adds O_CLOEXEC flags to open() or openat() calls where no fcntl(fd, F_SETFD, FD_CLOEXEC) follows. The separate fcntl() call still leaves a race window so it should be fixed later. --- lib/libc/gen/sem_new.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/libc/gen/sem_new.c') diff --git a/lib/libc/gen/sem_new.c b/lib/libc/gen/sem_new.c index b748b49235af2..b11d54721ba5c 100644 --- a/lib/libc/gen/sem_new.c +++ b/lib/libc/gen/sem_new.c @@ -198,7 +198,7 @@ _sem_open(const char *name, int flags, ...) goto error; } - fd = _open(path, flags|O_RDWR, mode); + fd = _open(path, flags|O_RDWR|O_CLOEXEC, mode); if (fd == -1) goto error; if (flock(fd, LOCK_EX) == -1) -- cgit v1.2.3