diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2019-09-23 18:23:22 +0200 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2019-09-23 18:23:22 +0200 |
commit | 4ce81556b7ad7f7f8c8bb07a7a935114bbe850d0 (patch) | |
tree | b39d7958a528c16856f1610235b6174e17c14ab7 /lisp/gnus/mm-decode.el | |
parent | babc595909922201ca92f1bbcc03ae6b7964c1a9 (diff) | |
download | emacs-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.el | 18 |
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) |