[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master a895864: Fix epg filtering out keys that contain revoked IDs
From: |
Lars Ingebrigtsen |
Subject: |
master a895864: Fix epg filtering out keys that contain revoked IDs |
Date: |
Thu, 4 Feb 2021 03:25:38 -0500 (EST) |
branch: master
commit a8958640c4d8b17d6bc093d94741565276fa9e5f
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Fix epg filtering out keys that contain revoked IDs
* lisp/epg.el (epg--filter-revoked-keys): Only filter out the
revoked user ids, not the entire key that contains revoked user
ids (bug#46138).
---
lisp/epg.el | 22 ++++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/lisp/epg.el b/lisp/epg.el
index b1f37cb..36794d0 100644
--- a/lisp/epg.el
+++ b/lisp/epg.el
@@ -332,7 +332,6 @@ callback data (if any)."
(cl-defstruct (epg-key
(:constructor nil)
(:constructor epg-make-key (owner-trust))
- (:copier nil)
(:predicate nil))
(owner-trust nil :read-only t)
sub-key-list user-id-list)
@@ -1383,11 +1382,22 @@ NAME is either a string or a list of strings."
keys))
(defun epg--filter-revoked-keys (keys)
- (seq-remove (lambda (key)
- (seq-find (lambda (user)
- (eq (epg-user-id-validity user) 'revoked))
- (epg-key-user-id-list key)))
- keys))
+ (mapcar
+ (lambda (key)
+ ;; We have something revoked, so copy the key and remove the
+ ;; revoked bits.
+ (if (seq-find (lambda (user)
+ (eq (epg-user-id-validity user) 'revoked))
+ (epg-key-user-id-list key))
+ (let ((copy (copy-epg-key key)))
+ (setf (epg-key-user-id-list copy)
+ (seq-remove (lambda (user)
+ (eq (epg-user-id-validity user) 'revoked))
+ (epg-key-user-id-list copy)))
+ copy)
+ ;; Nothing to delete; return the key.
+ key))
+ keys))
(defun epg--args-from-sig-notations (notations)
(apply #'nconc
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master a895864: Fix epg filtering out keys that contain revoked IDs,
Lars Ingebrigtsen <=