Don't call close on invalid fds
authorMatthias Clasen <mclasen@redhat.com>
Mon, 29 Aug 2011 19:18:29 +0000 (15:18 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 29 Aug 2011 19:21:15 +0000 (15:21 -0400)
If an fd is -1, don't call close() on it, since that leads to
EBDAF and complaints from valgrind.

https://bugzilla.gnome.org/show_bug.cgi?id=657593

glib/gtestutils.c

index 623ee12..00bad2b 100644 (file)
@@ -1817,9 +1817,12 @@ g_test_trap_fork (guint64        usec_timeout,
                 }
             }
         }
-      close (stdout_pipe[0]);
-      close (stderr_pipe[0]);
-      close (stdtst_pipe[0]);
+      if (stdout_pipe[0] != -1)
+        close (stdout_pipe[0]);
+      if (stderr_pipe[0] != -1)
+        close (stderr_pipe[0]);
+      if (stdtst_pipe[0] != -1)
+        close (stdtst_pipe[0]);
       if (need_wait)
         {
           int status = 0;