aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Fella <[email protected]>2024-10-04 11:17:11 +0000
committerTobias Fella <[email protected]>2024-10-04 11:39:17 +0000
commit4541fe94fe194a40630cb76c0d8305da62f9dc09 (patch)
tree9e1ee2bcba605a3318cb536035973a163fb35073
parentcore: Allow GPGME_CREATE_ADSK also for gnupg 2.2.45 (diff)
downloadgpgme-tobias/fix-proc-all-sigs-gpgtar.tar.gz
gpgme-tobias/fix-proc-all-sigs-gpgtar.zip
core: fix passing --proc-all-sigs to gpgtartobias/fix-proc-all-sigs-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
-rw-r--r--src/engine-gpg.c12
1 files changed, 12 insertions, 0 deletions
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])
{