aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/gpg-card.c2
-rw-r--r--tools/gpgconf-comp.c27
-rw-r--r--tools/gpgconf.c5
-rw-r--r--tools/gpgtar-create.c17
-rw-r--r--tools/gpgtar-extract.c17
-rw-r--r--tools/gpgtar-list.c17
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;