mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
gpg: Properly account for ring trust packets.
* g10/keyring.c (keyring_get_keyblock): Use the parser's packet count
instead of counting ourself.
* g10/packet.h (struct parse_packet_ctx_s): New field
'n_parsed_packets'.
(init_parse_packet): Initialize new field.
* g10/parse-packet.c (parse): Count packets.
--
The 'keyring' keystore depends on the number of packets for delete and
update operations. With the rework of the ring trust packets, the
trust packets were no longer properly accounted for leading to keyring
corruptions.
The 'keybox' store was not affected.
GnuPG-bug-id: 3123
GnuPG-bug-id: 3135
GnuPG-bug-id: 3144
Fixes-commit: a8895c99a7
Signed-off-by: Justus Winter <justus@g10code.com>
This commit is contained in:
parent
692208fd6c
commit
22739433e9
3 changed files with 7 additions and 2 deletions
|
@ -764,6 +764,9 @@ parse (parse_packet_ctx_t ctx, PACKET *pkt, int onlykeypkts, off_t * retpos,
|
|||
partial? (new_ctb ? " partial" : " indeterminate") :"",
|
||||
new_ctb? " new-ctb":"");
|
||||
|
||||
/* Count it. */
|
||||
ctx->n_parsed_packets++;
|
||||
|
||||
pkt->pkttype = pkttype;
|
||||
rc = GPG_ERR_UNKNOWN_PACKET; /* default error */
|
||||
switch (pkttype)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue