Blob Blame History Raw
From ad4673589428db6e3b9fecd6f151eb899500336d Mon Sep 17 00:00:00 2001
Message-Id: <ad4673589428db6e3b9fecd6f151eb899500336d.1566556207.git.pmatilai@redhat.com>
From: Panu Matilainen <pmatilai@redhat.com>
Date: Thu, 15 Aug 2019 14:00:43 +0300
Subject: [PATCH 1/3] Support running rpmfcExec() without any piped
 input/output

Having a function called getOutputFrom() which doesn't is a wee bit
weird but what the hey...

No behavior changes here, but this is needed for the next steps.
---
 build/rpmfc.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/build/rpmfc.c b/build/rpmfc.c
index 80da96f3a..94b4620d2 100644
--- a/build/rpmfc.c
+++ b/build/rpmfc.c
@@ -268,8 +268,9 @@ static int getOutputFrom(ARGV_t argv,
     int status;
     int myerrno = 0;
     int ret = 1; /* assume failure */
+    int doio = (writePtr || sb_stdout || dup);
 
-    if (pipe(toProg) < 0 || pipe(fromProg) < 0) {
+    if (doio && (pipe(toProg) < 0 || pipe(fromProg) < 0)) {
 	rpmlog(RPMLOG_ERR, _("Couldn't create pipe for %s: %m\n"), argv[0]);
 	return -1;
     }
@@ -303,6 +304,9 @@ static int getOutputFrom(ARGV_t argv,
 	return -1;
     }
 
+    if (!doio)
+	goto reap;
+
     close(toProg[0]);
     close(fromProg[1]);
 
@@ -376,6 +380,7 @@ static int getOutputFrom(ARGV_t argv,
     if (fromProg[0] >= 0)
 	close(fromProg[0]);
 
+reap:
     /* Collect status from prog */
     reaped = waitpid(child, &status, 0);
     rpmlog(RPMLOG_DEBUG, "\twaitpid(%d) rc %d status %x\n",
-- 
2.21.0