From 4541fe94fe194a40630cb76c0d8305da62f9dc09 Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Fri, 4 Oct 2024 13:17:11 +0200 Subject: core: fix passing --proc-all-sigs to gpgtar Currently, the flag is getting passed to gpgtar directly, which doesn't know about the flag and exits. Instead, prepend a "--gpg-args" to the parameter so that gpgtar passes it to gpg GnuPG-Bug-ID: 7320 --- src/engine-gpg.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/engine-gpg.c b/src/engine-gpg.c index 6df0617a..318c0e35 100644 --- a/src/engine-gpg.c +++ b/src/engine-gpg.c @@ -1020,6 +1020,8 @@ build_argv (engine_gpg_t gpg, const char *pgmname) argc += 1 + !!gpg->flags.use_gpgtar; if (gpg->flags.no_auto_check_trustdb) argc += 1 + !!gpg->flags.use_gpgtar; + if (gpg->flags.proc_all_sigs && have_option_proc_all_sigs (gpg)) + argc += 1 + !!gpg->flags.use_gpgtar; if (gpg->pinentry_mode) argc += 1 + !!gpg->flags.use_gpgtar; if (!gpg->cmd.used) @@ -1260,6 +1262,16 @@ build_argv (engine_gpg_t gpg, const char *pgmname) argc++; if (gpg->flags.proc_all_sigs && have_option_proc_all_sigs (gpg)) { + if (gpg->flags.use_gpgtar) + { + argv[argc] = strdup ("--gpg-args"); + if (!argv[argc]) + { + err = gpg_error_from_syserror (); + goto leave; + } + argc++; + } argv[argc] = strdup ("--proc-all-sigs"); if (!argv[argc]) { -- cgit v1.2.3