From 48fd50701229de084947ea94406c1ff2c7c397f5 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Fri, 25 Jan 2013 12:32:39 -0500 Subject: [PATCH 1/1] gfile: Ensure we create internal pipe with FD_CLOEXEC That way the descriptors aren't leaked to child processes. https://bugzilla.gnome.org/show_bug.cgi?id=692544 --- gio/gfile.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gio/gfile.c b/gio/gfile.c index e2f0d43..21c9f59 100644 --- a/gio/gfile.c +++ b/gio/gfile.c @@ -46,6 +46,9 @@ #endif #include "gfile.h" +#ifdef G_OS_UNIX +#include "glib-unix.h" +#endif #include "gvfs.h" #include "gtask.h" #include "gfileattribute-priv.h" @@ -2850,12 +2853,8 @@ splice_stream_with_progress (GInputStream *in, fd_in = g_file_descriptor_based_get_fd (G_FILE_DESCRIPTOR_BASED (in)); fd_out = g_file_descriptor_based_get_fd (G_FILE_DESCRIPTOR_BASED (out)); - if (pipe (buffer) != 0) - { - g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED, - "Pipe creation failed"); - return FALSE; - } + if (!g_unix_open_pipe (buffer, FD_CLOEXEC, error)) + return FALSE; total_size = -1; /* avoid performance impact of querying total size when it's not needed */ -- 2.7.4