diff options
Diffstat (limited to 'g10/free-packet.c')
-rw-r--r-- | g10/free-packet.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/g10/free-packet.c b/g10/free-packet.c index 1824806a5..7dada08f8 100644 --- a/g10/free-packet.c +++ b/g10/free-packet.c @@ -164,8 +164,14 @@ copy_public_key ( PKT_public_key *d, PKT_public_key *s) for(i=0; i < n; i++ ) d->pkey[i] = mpi_copy( s->pkey[i] ); } - d->revkey=m_alloc(sizeof(struct revocation_key)*s->numrevkeys); - memcpy(d->revkey,s->revkey,sizeof(struct revocation_key)*s->numrevkeys); + if( !s->revkey && s->numrevkeys ) + BUG(); + if( s->numrevkeys ) { + d->revkey = m_alloc(sizeof(struct revocation_key)*s->numrevkeys); + memcpy(d->revkey,s->revkey,sizeof(struct revocation_key)*s->numrevkeys); + } + else + d->revkey = NULL; return d; } |