diff --git a/gpgme/ChangeLog b/gpgme/ChangeLog index 2a5c7191..8285ff85 100644 --- a/gpgme/ChangeLog +++ b/gpgme/ChangeLog @@ -1,3 +1,8 @@ +2008-03-05 Marcus Brinkmann + + * decrypt.c (release_op_data): Release OPD->result.recipients. + * encrypt.c (release_op_data): Release invalid_recipient. + 2008-02-15 Marcus Brinkmann * engine-gpgconf.c (gpgconf_read): Fix end-of-line handline. diff --git a/gpgme/decrypt.c b/gpgme/decrypt.c index 5ce21bad..66250b12 100644 --- a/gpgme/decrypt.c +++ b/gpgme/decrypt.c @@ -50,12 +50,20 @@ static void release_op_data (void *hook) { op_data_t opd = (op_data_t) hook; + gpgme_recipient_t recipient = opd->result.recipients; if (opd->result.unsupported_algorithm) free (opd->result.unsupported_algorithm); if (opd->result.file_name) free (opd->result.file_name); + + while (recipient) + { + gpgme_recipient_t next = recipient->next; + free (recipient); + recipient = next; + } } diff --git a/gpgme/encrypt.c b/gpgme/encrypt.c index a7a1f4de..4744090d 100644 --- a/gpgme/encrypt.c +++ b/gpgme/encrypt.c @@ -53,6 +53,7 @@ release_op_data (void *hook) gpgme_invalid_key_t next = invalid_recipient->next; if (invalid_recipient->fpr) free (invalid_recipient->fpr); + free (invalid_recipient); invalid_recipient = next; } }