diff options
author | NIIBE Yutaka <gniibe@fsij.org> | 2013-08-06 12:57:10 +0900 |
---|---|---|
committer | NIIBE Yutaka <gniibe@fsij.org> | 2013-08-06 12:57:10 +0900 |
commit | ae6ffd9af38cbcac57c220960f683aab91db85cb (patch) | |
tree | ea685e6a7dfe335e04a67d2fb94da92a509fd36d /cipher/pubkey.c | |
parent | d8e99a04dba6a606e879464cd11deee760d1e000 (diff) | |
download | libgcrypt-ae6ffd9af38cbcac57c220960f683aab91db85cb.tar.gz |
cipher: fix memory leaks.
* cipher/elgamal.c (elg_generate_ext): Free XVALUE.
* cipher/pubkey.c (sexp_elements_extract): Don't use IDX for loop.
Call mpi_free.
(sexp_elements_extract_ecc): Call mpi_free.
Diffstat (limited to 'cipher/pubkey.c')
-rw-r--r-- | cipher/pubkey.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/cipher/pubkey.c b/cipher/pubkey.c index b540bd5a..e8671697 100644 --- a/cipher/pubkey.c +++ b/cipher/pubkey.c @@ -1832,8 +1832,8 @@ sexp_elements_extract (gcry_sexp_t key_sexp, const char *element_names, if (!err) { /* Check that all elements are available. */ - for (name = element_names, idx = 0; *name; name++, idx++) - if (!elements[idx]) + for (name = element_names, i = 0; *name; name++, i++) + if (!elements[i]) break; if (*name) { @@ -1857,7 +1857,7 @@ sexp_elements_extract (gcry_sexp_t key_sexp, const char *element_names, { for (i = 0; i < idx; i++) if (elements[i]) - gcry_free (elements[i]); + mpi_free (elements[i]); } return err; } @@ -1963,7 +1963,7 @@ sexp_elements_extract_ecc (gcry_sexp_t key_sexp, const char *element_names, { for (name = element_names, idx = 0; *name; name++, idx++) if (elements[idx]) - gcry_free (elements[idx]); + mpi_free (elements[idx]); } return err; } |