emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 4ce8155: Make mm-possibly-verify-or-decrypt pass de


From: Lars Ingebrigtsen
Subject: [Emacs-diffs] master 4ce8155: Make mm-possibly-verify-or-decrypt pass decryption error
Date: Mon, 23 Sep 2019 12:23:31 -0400 (EDT)

branch: master
commit 4ce81556b7ad7f7f8c8bb07a7a935114bbe850d0
Author: Lars Ingebrigtsen <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>

    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).
---
 lisp/gnus/mm-decode.el | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index 5636b8e..b6e2a68 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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]