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).
This commit is contained in:
Lars Ingebrigtsen 2019-09-23 18:23:22 +02:00
parent babc595909
commit 4ce81556b7

View 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)