aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sm/gpgsm.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/sm/gpgsm.c b/sm/gpgsm.c
index 541f904df..b91667a1e 100644
--- a/sm/gpgsm.c
+++ b/sm/gpgsm.c
@@ -953,6 +953,7 @@ parse_keyserver_line (char *line,
int
main ( int argc, char **argv)
{
+ gpg_error_t err;
gpgrt_argparse_t pargs;
int orig_argc;
char **orig_argv;
@@ -1929,7 +1930,15 @@ main ( int argc, char **argv)
else
wrong_args ("--encrypt [datafile]");
+#if GPGRT_VERSION_NUMBER >= 0x012700 /* >= 1.39 */
+ if (err)
+ gpgrt_fcancel (fp);
+ else
+ es_fclose (fp);
+#else
+ (void)err;
es_fclose (fp);
+#endif
}
break;
@@ -1941,14 +1950,22 @@ main ( int argc, char **argv)
signing because that is what gpg does.*/
set_binary (stdin);
if (!argc) /* Create from stdin. */
- gpgsm_sign (&ctrl, signerlist, 0, detached_sig, fp);
+ err = gpgsm_sign (&ctrl, signerlist, 0, detached_sig, fp);
else if (argc == 1) /* From file. */
- gpgsm_sign (&ctrl, signerlist,
+ err = gpgsm_sign (&ctrl, signerlist,
open_read (*argv), detached_sig, fp);
else
wrong_args ("--sign [datafile]");
+#if GPGRT_VERSION_NUMBER >= 0x012700 /* >= 1.39 */
+ if (err)
+ gpgrt_fcancel (fp);
+ else
+ es_fclose (fp);
+#else
+ (void)err;
es_fclose (fp);
+#endif
}
break;