diff --git a/common/exechelp-posix.c b/common/exechelp-posix.c index 425f2b4d5..2b724ce5f 100644 --- a/common/exechelp-posix.c +++ b/common/exechelp-posix.c @@ -416,6 +416,15 @@ gnupg_create_pipe (int filedes[2]) } +/* Close the end of a pipe. */ +void +gnupg_close_pipe (int fd) +{ + if (fd != -1) + close (fd); +} + + /* Fork and exec the PGMNAME, see exechelp.h for details. */ gpg_error_t gnupg_spawn_process (const char *pgmname, const char *argv[], diff --git a/common/exechelp-w32.c b/common/exechelp-w32.c index ea158a33f..be684caaa 100644 --- a/common/exechelp-w32.c +++ b/common/exechelp-w32.c @@ -397,6 +397,15 @@ gnupg_create_pipe (int filedes[2]) } +/* Close the end of a pipe. */ +void +gnupg_close_pipe (int fd) +{ + if (fd != -1) + close (fd); +} + + /* Fork and exec the PGMNAME, see exechelp.h for details. */ gpg_error_t gnupg_spawn_process (const char *pgmname, const char *argv[], diff --git a/common/exechelp.h b/common/exechelp.h index 9e1f56f70..d50e378e7 100644 --- a/common/exechelp.h +++ b/common/exechelp.h @@ -69,6 +69,9 @@ gpg_error_t gnupg_create_outbound_pipe (int filedes[2], inheritable. */ gpg_error_t gnupg_create_pipe (int filedes[2]); +/* Close the end of a pipe. */ +void gnupg_close_pipe (int fd); + #define GNUPG_SPAWN_NONBLOCK 16 #define GNUPG_SPAWN_RUN_ASFW 64