From 2b19474aab8f2201f896ead44cd72ac06405aa71 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Tue, 9 Jul 2024 15:15:13 +0900 Subject: common: On Windows, we care about how PIPE handles are inherited. * agent/gpg-agent.c (handle_connections): It's for POSIX. * kbx/keyboxd.c (handle_connections): Ditto. * scd/app.c (handle_connections): Ditto. * scd/scdaemon.c (handle_connections): Ditto. tpm2d/tpm2daemon.c (handle_connections): Ditto. * tests/gpgscm/ffi.c (do_pipe): Use GNUPG_PIPE_BOTH. (do_inbound_pipe): Use GNUPG_PIPE_INBOUND. (do_outbound_pipe): Use GNUPG_PIPE_OUTBOUND. * common/call-gpg.c (_gpg_encrypt): Specify outbound and inbound. (_gpg_decrypt): Likewise. * common/exechelp-posix.c (gnupg_create_pipe): Add an argument. * common/exechelp-w32.c (create_pipe_and_estream): Care about how PIPE handles are inherited to child process. (gnupg_create_pipe): Add an argument. * common/exechelp.h: Add enum values. -- Fixes-commit: af6c47b2910f394faf582800d60d88e9b4dcf834 Signed-off-by: NIIBE Yutaka --- common/exechelp-posix.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'common/exechelp-posix.c') diff --git a/common/exechelp-posix.c b/common/exechelp-posix.c index 2c7cb2adf..a9d91d9e7 100644 --- a/common/exechelp-posix.c +++ b/common/exechelp-posix.c @@ -348,11 +348,14 @@ gnupg_create_outbound_pipe (gnupg_fd_t *r_fd, estream_t *r_fp, int nonblock) } -/* Portable function to create a pipe. Under Windows both ends are - inheritable. */ +/* Portable function to create a pipe. FLAGS=GNUPG_PIPE_INBOUND for + ihneritable write-end for Windows, GNUPG_PIPE_OUTBOUND for + inheritable read-end for Windows, GNUPG_PIPE_BOTH to specify + both ends may be inheritable. */ gpg_error_t -gnupg_create_pipe (int filedes[2]) +gnupg_create_pipe (int filedes[2], int flags) { + (void)flags; return do_create_pipe (filedes); } -- cgit v1.2.3