diff --git a/gio/glocalfileoutputstream.c b/gio/glocalfileoutputstream.c index 74a642da8..6875811d0 100644 --- a/gio/glocalfileoutputstream.c +++ b/gio/glocalfileoutputstream.c @@ -1040,7 +1040,7 @@ handle_overwrite_open (const char *filename, tmp_filename = g_build_filename (dirname, ".goutputstream-XXXXXX", NULL); g_free (dirname); - tmpfd = g_mkstemp_full (tmp_filename, (readable ? O_RDWR : O_WRONLY) | O_BINARY, mode); + tmpfd = g_mkstemp_full (tmp_filename, (readable ? O_RDWR : O_WRONLY) | O_BINARY | O_CLOEXEC, mode); if (tmpfd == -1) { g_free (tmp_filename); diff --git a/glib/gfileutils.c b/glib/gfileutils.c index ef3fc90f2..4ed8171cc 100644 --- a/glib/gfileutils.c +++ b/glib/gfileutils.c @@ -1351,7 +1351,7 @@ g_file_set_contents_full (const gchar *filename, tmp_filename = g_strdup_printf ("%s.XXXXXX", filename); errno = 0; - fd = g_mkstemp_full (tmp_filename, O_RDWR | O_BINARY, mode); + fd = g_mkstemp_full (tmp_filename, O_RDWR | O_BINARY | O_CLOEXEC, mode); if (fd == -1) { @@ -1704,7 +1704,7 @@ g_mkstemp_full (gchar *tmpl, gint g_mkstemp (gchar *tmpl) { - return g_mkstemp_full (tmpl, O_RDWR | O_BINARY, 0600); + return g_mkstemp_full (tmpl, O_RDWR | O_BINARY | O_CLOEXEC, 0600); } static gint @@ -1826,7 +1826,7 @@ g_file_open_tmp (const gchar *tmpl, result = g_get_tmp_name (tmpl, &fulltemplate, wrap_g_open, - O_CREAT | O_EXCL | O_RDWR | O_BINARY, + O_CREAT | O_EXCL | O_RDWR | O_BINARY | O_CLOEXEC, 0600, error); if (result != -1)