summaryrefslogtreecommitdiff
path: root/cipher/pubkey.c
diff options
context:
space:
mode:
authorNIIBE Yutaka <gniibe@fsij.org>2013-08-06 12:57:10 +0900
committerNIIBE Yutaka <gniibe@fsij.org>2013-08-06 12:57:10 +0900
commitae6ffd9af38cbcac57c220960f683aab91db85cb (patch)
treeea685e6a7dfe335e04a67d2fb94da92a509fd36d /cipher/pubkey.c
parentd8e99a04dba6a606e879464cd11deee760d1e000 (diff)
downloadlibgcrypt-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.c8
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;
}