gpg: Fix keyring retrieval.

* g10/keyring.c (keyring_get_keyblock): Avoid O(N^2) append.

GnuPG-bug-id: 4592
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
(cherry picked from commit a7a043e825)

Gbp-Pq: Topic from-master
Gbp-Pq: Name gpg-Fix-keyring-retrieval.patch
This commit is contained in:
NIIBE Yutaka 2019-07-10 15:06:54 +09:00 committed by Daniel Kahn Gillmor
parent ab76d64837
commit 9e12829299
1 changed files with 6 additions and 3 deletions

View File

@ -473,11 +473,14 @@ keyring_get_keyblock (KEYRING_HANDLE hd, KBNODE *ret_kb)
}
in_cert = 1;
node = lastnode = new_kbnode (pkt);
node = new_kbnode (pkt);
if (!keyblock)
keyblock = node;
keyblock = lastnode = node;
else
add_kbnode (keyblock, node);
{
lastnode->next = node;
lastnode = node;
}
switch (pkt->pkttype)
{
case PKT_PUBLIC_KEY: