From ad4673589428db6e3b9fecd6f151eb899500336d Mon Sep 17 00:00:00 2001 Message-Id: From: Panu Matilainen 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