aboutsummaryrefslogtreecommitdiffstats
path: root/g10/free-packet.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/free-packet.c')
-rw-r--r--g10/free-packet.c21
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;
}