From 9173d9aa7dd7a2f00519b1887b1896460a916066 Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Thu, 13 Oct 2016 03:43:50 -0400 Subject: [PATCH] [mod_cgi] fix pipe_cloexec() when no O_CLOEXEC --- src/mod_cgi.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/mod_cgi.c b/src/mod_cgi.c index 4e0a831a..8b0dd3ed 100644 --- a/src/mod_cgi.c +++ b/src/mod_cgi.c @@ -39,7 +39,12 @@ #ifdef O_CLOEXEC #define pipe_cloexec(pipefd) pipe2((pipefd), O_CLOEXEC) #elif defined FD_CLOEXEC -#define pipe_cloexec(pipefd) (0 == pipe(pipefd) ? fcntl(fd, F_SETFD, FD_CLOEXEC) : -1) +#define pipe_cloexec(pipefd) \ + ( 0 == pipe(pipefd) \ + && 0 == fcntl(pipefd[0], F_SETFD, FD_CLOEXEC) \ + && 0 == fcntl(pipefd[1], F_SETFD, FD_CLOEXEC) \ + ? 0 \ + : -1) #else #define pipe_cloexec(pipefd) pipe(pipefd) #endif -- 2.11.4.GIT