From: Andrew Walton Date: Tue, 12 Nov 2013 21:04:49 +0000 (-0800) Subject: CLOEXEC fix for older FreeBSDs and OS X. X-Git-Tag: 2.39.2~126 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4382e8b876a3991e1be2827be76630e1b67b8e03;p=platform%2Fupstream%2Fglib.git CLOEXEC fix for older FreeBSDs and OS X. Some older POSIX-flavored operating systems may not have adopted O_CLOEXEC yet. See https://bugzilla.gnome.org/show_bug.cgi?id=712136. --- diff --git a/gio/gsubprocess.c b/gio/gsubprocess.c index ca9b006..bced7a5 100644 --- a/gio/gsubprocess.c +++ b/gio/gsubprocess.c @@ -108,6 +108,12 @@ #define O_BINARY 0 #endif +#ifndef O_CLOEXEC +#define O_CLOEXEC 0 +#else +#define HAVE_O_CLOEXEC 1 +#endif + #define COMMUNICATE_READ_SIZE 4096 /* A GSubprocess can have two possible states: running and not. @@ -356,6 +362,10 @@ unix_open_file (const char *filename, g_free (display_name); /* fall through... */ } +#ifndef HAVE_O_CLOEXEC + else + fcntl (my_fd, F_SETFD, FD_CLOEXEC); +#endif return my_fd; }