1
0
mirror of git://git.gnupg.org/gnupg.git synced 2025-04-13 22:21:09 +02:00

gpg: Fix keyring retrieval.

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

--

Cherry-picking the master commit of:
	a7a043e82555a9da984c6fb01bfec4990d904690

GnuPG-bug-id: 4592
Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
NIIBE Yutaka 2019-07-10 15:06:54 +09:00
parent d10bb027e4
commit b7df72d307

View File

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