aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2004-06-16 09:36:59 +0000
committerWerner Koch <[email protected]>2004-06-16 09:36:59 +0000
commit40e66b1af1d4c2c66f238f178812e6f111469298 (patch)
treec30b289c70166e37d02298a2c7aa04e808782a04
parent* gpg.sgml: Note that --charset is --display-charset. Some language (diff)
downloadgnupg-40e66b1af1d4c2c66f238f178812e6f111469298.tar.gz
gnupg-40e66b1af1d4c2c66f238f178812e6f111469298.zip
(copy_secret_key): Fixed memory leak.
-rw-r--r--THANKS1
-rw-r--r--g10/ChangeLog4
-rw-r--r--g10/free-packet.c9
3 files changed, 14 insertions, 0 deletions
diff --git a/THANKS b/THANKS
index 0336d65ff..9e3e1aa0f 100644
--- a/THANKS
+++ b/THANKS
@@ -11,6 +11,7 @@ Anand Kumria [email protected]
Andreas Haumer [email protected]
Anthony Mulcahy [email protected]
Ariel T Glenn [email protected]
+Atom 'Smasher' [email protected]
Bob Mathews [email protected]
Bodo Moeller [email protected]
Brendan O'Dea [email protected]
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 822150399..cb73e2662 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,7 @@
+2004-06-16 Werner Koch <[email protected]>
+
+ * free-packet.c (copy_secret_key): Fixed memory leak.
+
2004-06-01 David Shaw <[email protected]>
* g10.c (main): Alias --charset as --display-charset to help avoid
diff --git a/g10/free-packet.c b/g10/free-packet.c
index 89a67eb1f..d5965808c 100644
--- a/g10/free-packet.c
+++ b/g10/free-packet.c
@@ -264,11 +264,20 @@ 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[i])
+ mpi_free (d->skey[i]);
d->skey[i] = mpi_copy( s->skey[i] );
+ }
}
+
return d;
}