kqueue: open watched directories with close-on-exec flag
authorChengwei Yang <chengwei.yang@intel.com>
Mon, 2 Dec 2013 04:47:47 +0000 (12:47 +0800)
committerSimon McVittie <simon.mcvittie@collabora.co.uk>
Mon, 6 Jan 2014 16:04:44 +0000 (16:04 +0000)
[FreeBSD and OpenBSD contributors clarified that O_CLOEXEC has been
supported for ~ 2 years on both, so for the moment we're assuming
that every platform with kqueue also has working O_CLOEXEC. Please reopen
the bug, with a tested patch that uses _dbus_fd_set_close_on_exec() instead,
if this assumption turns out to be false. -smcv]

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=72213
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
bus/dir-watch-kqueue.c

index 4cc780d..33d5e95 100644 (file)
@@ -259,7 +259,7 @@ bus_set_watched_dirs (BusContext *context, DBusList **directories)
           /* FIXME - less lame error handling for failing to add a watch;
            * we may need to sleep.
            */
-          fd = open (new_dirs[i], O_RDONLY);
+          fd = open (new_dirs[i], O_RDONLY | O_CLOEXEC);
           if (fd < 0)
             {
               if (errno != ENOENT)