diff options
Diffstat (limited to 'g10/free-packet.c')
-rw-r--r-- | g10/free-packet.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/g10/free-packet.c b/g10/free-packet.c index 0962af0fc..3a9e17665 100644 --- a/g10/free-packet.c +++ b/g10/free-packet.c @@ -161,6 +161,11 @@ release_public_key_parts (PKT_public_key *pk) xfree (pk->updateurl); pk->updateurl = NULL; } + if (pk->revoked.reason_comment) + { + xfree (pk->revoked.reason_comment); + pk->revoked.reason_comment = NULL; + } } @@ -231,6 +236,10 @@ copy_public_key_basics (PKT_public_key *d, PKT_public_key *s) d->seckey_info = NULL; d->user_id = NULL; d->prefs = NULL; + d->revoked.got_reason = 0; + d->revoked.reason_code = 0; + d->revoked.reason_comment = NULL; + d->revoked.reason_comment_len = 0; n = pubkey_get_npkey (s->pubkey_algo); i = 0; @@ -274,6 +283,18 @@ copy_public_key (PKT_public_key *d, PKT_public_key *s) d->serialno = xstrdup (s->serialno); if (s->updateurl) d->updateurl = xstrdup (s->updateurl); + if (s->revoked.got_reason) + { + d->revoked.got_reason = s->revoked.got_reason; + d->revoked.reason_code = s->revoked.reason_code; + if (s->revoked.reason_comment_len) + { + d->revoked.reason_comment = xmalloc (s->revoked.reason_comment_len); + memcpy (d->revoked.reason_comment, s->revoked.reason_comment, + s->revoked.reason_comment_len); + d->revoked.reason_comment_len = s->revoked.reason_comment_len; + } + } return d; } |