From 600df5259db0b7be25a2e2b06c0c2d13265eceea Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 26 Sep 2025 14:43:39 +0200 Subject: gpg: Detect duplicate keys with --add-recipients. * g10/packet.h (struct pubkey_enc_list): Change to use a union to also store symkey_enc data. Adjust all users accordingly. (struct pubkey_enc_info_item): New. * g10/free-packet.c (free_pubkey_enc_list): New. * g10/mainproc.c (release_list): Use it here. * g10/decrypt.c (decrypt_message): and here. * g10/encrypt.c (reencrypt_to_new_recipients): Record the used pubkey_enc packets and pass them to write_pubkey_enc_from_list. (write_pubkey_enc_from_list): Add arg restrict_pk_list and use it to skip recipients already used. -- GnuPG-bug-id: 1825 Note that we here already prepare to better handle symkey_enc packets. --- g10/decrypt.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) (limited to 'g10/decrypt.c') diff --git a/g10/decrypt.c b/g10/decrypt.c index 644bf2eba..539637086 100644 --- a/g10/decrypt.c +++ b/g10/decrypt.c @@ -120,14 +120,7 @@ decrypt_message (ctrl_t ctrl, const char *filename, strlist_t remusr) } xfree (dek); - while (pkenc_list) - { - struct pubkey_enc_list *tmp = pkenc_list->next; - - release_pubkey_enc_parts (&pkenc_list->d); - xfree (pkenc_list); - pkenc_list = tmp; - } + free_pubkey_enc_list (pkenc_list); iobuf_close (fp); release_armor_context (afx); release_progress_context (pfx); -- cgit