]> granicus.if.org Git - neomutt/commitdiff
Convert pgp_extract_keys_from_attachment() to use buffer pool
authorKevin McCarthy <kevin@8t8.us>
Fri, 18 Oct 2019 06:29:56 +0000 (14:29 +0800)
committerRichard Russon <rich@flatcap.org>
Sat, 26 Oct 2019 22:55:43 +0000 (23:55 +0100)
Upstream-commit: https://gitlab.com/muttmua/mutt/commit/f3bfb7d105854f53428b98de95d920e6f5ebad0e
Co-authored-by: Richard Russon <rich@flatcap.org>
ncrypt/pgp.c

index 71b7befce822547ab8bfd020378ea1ce8ababd1c..f7bb0aef8510f46f225ec1319bf851f1c2d05b6d 100644 (file)
@@ -944,14 +944,14 @@ cleanup:
 static void pgp_extract_keys_from_attachment(FILE *fp, struct Body *top)
 {
   struct State s = { 0 };
-  char tempfname[PATH_MAX];
+  struct Buffer *tempfname = mutt_buffer_pool_get();
 
-  mutt_mktemp(tempfname, sizeof(tempfname));
-  FILE *fp_tmp = mutt_file_fopen(tempfname, "w");
+  mutt_buffer_mktemp(tempfname);
+  FILE *fp_tmp = mutt_file_fopen(mutt_b2s(tempfname), "w");
   if (!fp_tmp)
   {
-    mutt_perror(tempfname);
-    return;
+    mutt_perror(mutt_b2s(tempfname));
+    goto cleanup;
   }
 
   s.fp_in = fp;
@@ -961,10 +961,13 @@ static void pgp_extract_keys_from_attachment(FILE *fp, struct Body *top)
 
   mutt_file_fclose(&fp_tmp);
 
-  pgp_class_invoke_import(tempfname);
+  pgp_class_invoke_import(mutt_b2s(tempfname));
   mutt_any_key_to_continue(NULL);
 
-  mutt_file_unlink(tempfname);
+  mutt_file_unlink(mutt_b2s(tempfname));
+
+cleanup:
+  mutt_buffer_pool_release(&tempfname);
 }
 
 /**