aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine-gpg.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine-gpg.c')
-rw-r--r--src/engine-gpg.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/engine-gpg.c b/src/engine-gpg.c
index cc249e7b..6954b596 100644
--- a/src/engine-gpg.c
+++ b/src/engine-gpg.c
@@ -1899,12 +1899,18 @@ gpg_decrypt (void *engine,
}
else
{
+ const char *output = gpgme_data_get_file_name (plain);
if (!err)
err = add_arg (gpg, "--output");
- if (!err)
- err = add_arg (gpg, "-");
- if (!err)
- err = add_data (gpg, plain, 1, 1);
+ if (!err && output)
+ err = add_arg (gpg, output);
+ else
+ {
+ if (!err)
+ err = add_arg (gpg, "-");
+ if (!err)
+ err = add_data (gpg, plain, 1, 1);
+ }
if (!err)
err = add_input_size_hint (gpg, ciph);
if (!err)
@@ -3768,9 +3774,12 @@ gpg_verify (void *engine, gpgme_verify_flags_t flags, gpgme_data_t sig,
else if (plaintext)
{
/* Normal or cleartext signature. */
+ const char *output = gpgme_data_get_file_name (plaintext);
err = add_arg (gpg, "--output");
- if (!err)
- err = add_data (gpg, plaintext, -1, 1);
+ if (!err && output)
+ err = add_arg (gpg, output);
+ else if (!err)
+ err = add_data (gpg, plaintext, -1, 1);
if (!err)
err = add_input_size_hint (gpg, sig);
if (!err)