aboutsummaryrefslogtreecommitdiffstats
path: root/g10/free-packet.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2004-06-16 09:09:31 +0000
committerWerner Koch <[email protected]>2004-06-16 09:09:31 +0000
commit5c9cc2e8674ad1e36b42a952ba1c4f0cb8b4b114 (patch)
treefe3981b6cdb6f6e920f190fdd6364343d398cff4 /g10/free-packet.c
parent* mk-w32-dist: Do not include the en@* po files. (diff)
downloadgnupg-5c9cc2e8674ad1e36b42a952ba1c4f0cb8b4b114.tar.gz
gnupg-5c9cc2e8674ad1e36b42a952ba1c4f0cb8b4b114.zip
* free-packet.c (copy_secret_key): Fixed memory leak when D is not
NULL. * passphrase.c (passphrase_to_dek): Added a few comments to the code.
Diffstat (limited to '')
-rw-r--r--g10/free-packet.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/g10/free-packet.c b/g10/free-packet.c
index b1383a750..195cf5088 100644
--- a/g10/free-packet.c
+++ b/g10/free-packet.c
@@ -265,10 +265,18 @@ copy_secret_key( PKT_secret_key *d, PKT_secret_key *s )
memcpy( d, s, sizeof *d );
n = pubkey_get_nskey( s->pubkey_algo );
if( !n )
+ {
+ if (d->skey[0])
+ mpi_free (d->skey[0]);
d->skey[0] = mpi_copy(s->skey[0]);
+ }
else {
for(i=0; i < n; i++ )
+ {
+ if (d->skey[1])
+ mpi_free (d->skey[1]);
d->skey[i] = mpi_copy( s->skey[i] );
+ }
}
return d;
}