summaryrefslogtreecommitdiff
path: root/lisp/gnus/mm-decode.el
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2019-09-23 18:23:22 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2019-09-23 18:23:22 +0200
commit4ce81556b7ad7f7f8c8bb07a7a935114bbe850d0 (patch)
treeb39d7958a528c16856f1610235b6174e17c14ab7 /lisp/gnus/mm-decode.el
parentbabc595909922201ca92f1bbcc03ae6b7964c1a9 (diff)
downloademacs-4ce81556b7ad7f7f8c8bb07a7a935114bbe850d0.tar.gz
Make mm-possibly-verify-or-decrypt pass decryption error
* 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).
Diffstat (limited to 'lisp/gnus/mm-decode.el')
-rw-r--r--lisp/gnus/mm-decode.el18
1 files changed, 15 insertions, 3 deletions
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index 5636b8eca47..b6e2a68d556 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -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)