]> git.eshelyaron.com Git - emacs.git/commitdiff
Make mm-possibly-verify-or-decrypt pass decryption error
authorLars Ingebrigtsen <larsi@gnus.org>
Mon, 23 Sep 2019 16:23:22 +0000 (18:23 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 23 Sep 2019 16:23:22 +0000 (18:23 +0200)
* lisp/gnus/mm-decode.el (mm-possibly-verify-or-decrypt): If
there's an error, report the error back in a new part (bug#25649).

lisp/gnus/mm-decode.el

index 5636b8eca477138166eabf90c946cf186bf9992e..b6e2a68d5561ce38730c4084e75bbbf46c66ebf5 100644 (file)
@@ -1738,9 +1738,21 @@ If RECURSIVE, search recursively."
              (setq parts (funcall func parts ctl))
            (mm-set-handle-multipart-parameter
             mm-security-handle 'gnus-details
-            (format "Unknown encrypt protocol (%s)" protocol))))))
-     (t nil))
-    parts))
+            (format "Unknown encrypt protocol (%s)" protocol)))))))
+    (let ((info (get-text-property 0 'gnus-info (car mm-security-handle))))
+      (if (or (not info)
+             (member "OK" (split-string info "\n")))
+         parts
+       ;; We had an error during decryption.  Report what it is.
+       (list
+        (mm-make-handle
+         (with-current-buffer (generate-new-buffer " *mm*")
+           (insert "Error!  Result from decryption:\n\n"
+                   info "\n\n"
+                   (get-text-property 0 'gnus-details
+                                      (car mm-security-handle)))
+           (current-buffer))
+         '("text/plain")))))))
 
 (defun mm-multiple-handles (handles)
   (and (listp handles)