g_unix_open_pipe: fix some bugs
authorRyan Lortie <desrt@desrt.ca>
Mon, 25 Jul 2011 13:25:13 +0000 (15:25 +0200)
committerRyan Lortie <desrt@desrt.ca>
Mon, 25 Jul 2011 13:26:28 +0000 (15:26 +0200)
Fix some bugs in the fallback case of g_unix_open_pipe:

  - close both halves of the pipe on error (not just one)

  - set the cloexec flag on both halves of the pipe (instead of settings
    it twice on one half)

glib/glib-unix.c

index 732e5fc..77bcea1 100644 (file)
@@ -113,9 +113,10 @@ g_unix_open_pipe (int     *fds,
     {
       int saved_errno = errno;
       close (fds[0]);
+      close (fds[1]);
       return g_unix_set_error_from_errno (error, saved_errno);
     }
-  ecode = fcntl (fds[0], flags);
+  ecode = fcntl (fds[1], flags);
   if (ecode == -1)
     {
       int saved_errno = errno;