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