aboutsummaryrefslogtreecommitdiffstats
path: root/g10/getkey.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/getkey.c')
-rw-r--r--g10/getkey.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/g10/getkey.c b/g10/getkey.c
index c776a6100..039a5edb5 100644
--- a/g10/getkey.c
+++ b/g10/getkey.c
@@ -2577,10 +2577,22 @@ merge_selfsigs_main (ctrl_t ctrl, kbnode_t keyblock, int *r_revoked,
xrealloc (pk->revkey, sizeof (struct revocation_key) *
(pk->numrevkeys + sig->numrevkeys));
- for (i = 0; i < sig->numrevkeys; i++)
- memcpy (&pk->revkey[pk->numrevkeys++],
- &sig->revkey[i],
- sizeof (struct revocation_key));
+ for (i = 0; i < sig->numrevkeys; i++, pk->numrevkeys++)
+ {
+ pk->revkey[pk->numrevkeys].class
+ = sig->revkey[i].class;
+ pk->revkey[pk->numrevkeys].algid
+ = sig->revkey[i].algid;
+ pk->revkey[pk->numrevkeys].fprlen
+ = sig->revkey[i].fprlen;
+ memcpy (pk->revkey[pk->numrevkeys].fpr,
+ sig->revkey[i].fpr, sig->revkey[i].fprlen);
+ memset (pk->revkey[pk->numrevkeys].fpr
+ + sig->revkey[i].fprlen,
+ 0,
+ sizeof (sig->revkey[i].fpr)
+ - sig->revkey[i].fprlen);
+ }
}
if (sig->timestamp >= sigdate)