diff options
Diffstat (limited to '')
-rw-r--r-- | tools/gpg-card.c | 2 | ||||
-rw-r--r-- | tools/gpgconf-comp.c | 27 | ||||
-rw-r--r-- | tools/gpgconf.c | 5 | ||||
-rw-r--r-- | tools/gpgtar-create.c | 17 | ||||
-rw-r--r-- | tools/gpgtar-extract.c | 17 | ||||
-rw-r--r-- | tools/gpgtar-list.c | 17 |
6 files changed, 60 insertions, 25 deletions
diff --git a/tools/gpg-card.c b/tools/gpg-card.c index 8b3a3082b..3d66033bf 100644 --- a/tools/gpg-card.c +++ b/tools/gpg-card.c @@ -3835,7 +3835,7 @@ cmd_gpg (card_info_t info, char *argstr, int use_gpgsm) argv, (GNUPG_PROCESS_STDOUT_KEEP | GNUPG_PROCESS_STDERR_KEEP), - NULL, NULL, &proc); + NULL, &proc); if (!err) { err = gnupg_process_wait (proc, 1); diff --git a/tools/gpgconf-comp.c b/tools/gpgconf-comp.c index d6aa9d61b..b54b52c69 100644 --- a/tools/gpgconf-comp.c +++ b/tools/gpgconf-comp.c @@ -761,7 +761,7 @@ gpg_agent_runtime_change (int killflag) log_assert (i < DIM(argv)); if (!err) - err = gnupg_process_spawn (pgmname, argv, 0, NULL, NULL, &proc); + err = gnupg_process_spawn (pgmname, argv, 0, NULL, &proc); if (!err) err = gnupg_process_wait (proc, 1); if (err) @@ -805,7 +805,7 @@ scdaemon_runtime_change (int killflag) log_assert (i < DIM(argv)); if (!err) - err = gnupg_process_spawn (pgmname, argv, 0, NULL, NULL, &proc); + err = gnupg_process_spawn (pgmname, argv, 0, NULL, &proc); if (!err) err = gnupg_process_wait (proc, 1); if (err) @@ -850,7 +850,7 @@ tpm2daemon_runtime_change (int killflag) log_assert (i < DIM(argv)); if (!err) - err = gnupg_process_spawn (pgmname, argv, 0, NULL, NULL, &proc); + err = gnupg_process_spawn (pgmname, argv, 0, NULL, &proc); if (!err) err = gnupg_process_wait (proc, 1); if (err) @@ -885,7 +885,7 @@ dirmngr_runtime_change (int killflag) log_assert (i < DIM(argv)); if (!err) - err = gnupg_process_spawn (pgmname, argv, 0, NULL, NULL, &proc); + err = gnupg_process_spawn (pgmname, argv, 0, NULL, &proc); if (!err) err = gnupg_process_wait (proc, 1); if (err) @@ -919,7 +919,7 @@ keyboxd_runtime_change (int killflag) log_assert (i < DIM(argv)); if (!err) - err = gnupg_process_spawn (pgmname, argv, 0, NULL, NULL, &proc); + err = gnupg_process_spawn (pgmname, argv, 0, NULL, &proc); if (!err) err = gnupg_process_wait (proc, 1); if (err) @@ -985,7 +985,7 @@ gc_component_launch (int component) argv[i] = NULL; log_assert (i < DIM(argv)); - err = gnupg_process_spawn (pgmname, argv, 0, NULL, NULL, &proc); + err = gnupg_process_spawn (pgmname, argv, 0, NULL, &proc); if (!err) err = gnupg_process_wait (proc, 1); if (err) @@ -1369,9 +1369,8 @@ gc_component_check_options (int component, estream_t out, const char *conf_file) result = 0; errlines = NULL; - err = gnupg_process_spawn (pgmname, argv, - GNUPG_PROCESS_STDERR_PIPE, - NULL, NULL, &proc); + err = gnupg_process_spawn (pgmname, argv, GNUPG_PROCESS_STDERR_PIPE, + NULL, &proc); if (err) result |= 1; /* Program could not be run. */ else @@ -1763,9 +1762,8 @@ retrieve_options_from_program (gc_component_id_t component, int only_installed) /* First we need to read the option table from the program. */ argv[0] = "--dump-option-table"; argv[1] = NULL; - err = gnupg_process_spawn (pgmname, argv, - GNUPG_PROCESS_STDOUT_PIPE, - NULL, NULL, &proc); + err = gnupg_process_spawn (pgmname, argv, GNUPG_PROCESS_STDOUT_PIPE, + NULL, &proc); if (err) { gc_error (1, 0, "could not gather option table from '%s': %s", @@ -1952,9 +1950,8 @@ retrieve_options_from_program (gc_component_id_t component, int only_installed) /* Now read the default options. */ argv[0] = "--gpgconf-list"; argv[1] = NULL; - err = gnupg_process_spawn (pgmname, argv, - GNUPG_PROCESS_STDOUT_PIPE, - NULL, NULL, &proc); + err = gnupg_process_spawn (pgmname, argv, GNUPG_PROCESS_STDOUT_PIPE, + NULL, &proc); if (err) { gc_error (1, 0, "could not gather active options from '%s': %s", diff --git a/tools/gpgconf.c b/tools/gpgconf.c index ac709ae21..301c1838f 100644 --- a/tools/gpgconf.c +++ b/tools/gpgconf.c @@ -1311,9 +1311,8 @@ show_versions_via_dirmngr (estream_t fp) pgmname = gnupg_module_name (GNUPG_MODULE_NAME_DIRMNGR); argv[0] = "--gpgconf-versions"; argv[1] = NULL; - err = gnupg_process_spawn (pgmname, argv, - GNUPG_PROCESS_STDOUT_PIPE, - NULL, NULL, &proc); + err = gnupg_process_spawn (pgmname, argv, GNUPG_PROCESS_STDOUT_PIPE, + NULL, &proc); if (err) { log_error ("error spawning %s: %s", pgmname, gpg_strerror (err)); diff --git a/tools/gpgtar-create.c b/tools/gpgtar-create.c index 7af5a2ede..76eb47449 100644 --- a/tools/gpgtar-create.c +++ b/tools/gpgtar-create.c @@ -1234,6 +1234,7 @@ gpgtar_create (char **inpattern, const char *files_from, int null_names, int except[2] = { -1, -1 }; #endif const char **argv; + gnupg_spawn_actions_t act = NULL; /* '--encrypt' may be combined with '--symmetric', but 'encrypt' * is set either way. Clear it if no recipients are specified. @@ -1296,11 +1297,23 @@ gpgtar_create (char **inpattern, const char *files_from, int null_names, goto leave; } + err = gnupg_spawn_actions_new (&act); + if (err) + { + xfree (argv); + goto leave; + } + +#ifdef HAVE_W32_SYSTEM + gnupg_spawn_actions_set_inherit_handles (act, except); +#else + gnupg_spawn_actions_set_inherit_fds (act, except); +#endif err = gnupg_process_spawn (opt.gpg_program, argv, (GNUPG_PROCESS_STDIN_PIPE | GNUPG_PROCESS_STDOUT_KEEP - | GNUPG_PROCESS_STDERR_KEEP), - gnupg_spawn_helper, except, &proc); + | GNUPG_PROCESS_STDERR_KEEP), act, &proc); + gnupg_spawn_actions_release (act); xfree (argv); if (err) goto leave; diff --git a/tools/gpgtar-extract.c b/tools/gpgtar-extract.c index 87113b054..e93ffdc37 100644 --- a/tools/gpgtar-extract.c +++ b/tools/gpgtar-extract.c @@ -390,6 +390,7 @@ gpgtar_extract (const char *filename, int decrypt) int except[2] = { -1, -1 }; #endif const char **argv; + gnupg_spawn_actions_t act = NULL; ccparray_init (&ccp, 0); if (opt.batch) @@ -435,10 +436,22 @@ gpgtar_extract (const char *filename, int decrypt) goto leave; } + err = gnupg_spawn_actions_new (&act); + if (err) + { + xfree (argv); + goto leave; + } + +#ifdef HAVE_W32_SYSTEM + gnupg_spawn_actions_set_inherit_handles (act, except); +#else + gnupg_spawn_actions_set_inherit_fds (act, except); +#endif err = gnupg_process_spawn (opt.gpg_program, argv, ((filename ? 0 : GNUPG_PROCESS_STDIN_KEEP) - | GNUPG_PROCESS_STDOUT_PIPE), - gnupg_spawn_helper, except, &proc); + | GNUPG_PROCESS_STDOUT_PIPE), act, &proc); + gnupg_spawn_actions_release (act); xfree (argv); if (err) goto leave; diff --git a/tools/gpgtar-list.c b/tools/gpgtar-list.c index 0c5e474f3..55d9246af 100644 --- a/tools/gpgtar-list.c +++ b/tools/gpgtar-list.c @@ -474,6 +474,7 @@ gpgtar_list (const char *filename, int decrypt) int except[2] = { -1, -1 }; #endif const char **argv; + gnupg_spawn_actions_t act = NULL; ccparray_init (&ccp, 0); if (opt.batch) @@ -513,10 +514,22 @@ gpgtar_list (const char *filename, int decrypt) goto leave; } + err = gnupg_spawn_actions_new (&act); + if (err) + { + xfree (argv); + goto leave; + } + +#ifdef HAVE_W32_SYSTEM + gnupg_spawn_actions_set_inherit_handles (act, except); +#else + gnupg_spawn_actions_set_inherit_fds (act, except); +#endif err = gnupg_process_spawn (opt.gpg_program, argv, ((filename ? 0 : GNUPG_PROCESS_STDIN_KEEP) - | GNUPG_PROCESS_STDOUT_PIPE), - gnupg_spawn_helper, except, &proc); + | GNUPG_PROCESS_STDOUT_PIPE), act, &proc); + gnupg_spawn_actions_release (act); xfree (argv); if (err) goto leave; |