From 7ce940978bb04a2180a0452ffbbab4cf70618ead Mon Sep 17 00:00:00 2001
From: Simon Marlow <marlowsd@gmail.com>
Date: Fri, 27 Mar 2009 21:24:16 +0000
Subject: [PATCH] check return value from pipe() (quiets gcc)

---
 cbits/runProcess.c | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/cbits/runProcess.c b/cbits/runProcess.c
index be960a2f..f069b8b5 100644
--- a/cbits/runProcess.c
+++ b/cbits/runProcess.c
@@ -45,16 +45,30 @@ runInteractiveProcess (char *const args[],
 {
     int pid;
     int fdStdInput[2], fdStdOutput[2], fdStdError[2];
+    int r;
     struct sigaction dfl;
 
     if (fdStdIn == -1) {
-        pipe(fdStdInput);
+        r = pipe(fdStdInput);
+        if (r == -1) { 
+            sysErrorBelch("runInteractiveProcess: pipe");
+            return -1;
+        }
+        
     }
     if (fdStdOut == -1) {
-        pipe(fdStdOutput);
+        r = pipe(fdStdOutput);
+        if (r == -1) { 
+            sysErrorBelch("runInteractiveProcess: pipe");
+            return -1;
+        }
     }
     if (fdStdErr == -1) {
-        pipe(fdStdError);
+        r = pipe(fdStdError);
+        if (r == -1) { 
+            sysErrorBelch("runInteractiveProcess: pipe");
+            return -1;
+        }
     }
 
     // Block signals with Haskell handlers.  The danger here is that
-- 
GitLab