gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r28529 - gnunet/src/util


From: gnunet
Subject: [GNUnet-SVN] r28529 - gnunet/src/util
Date: Mon, 12 Aug 2013 16:05:30 +0200

Author: grothoff
Date: 2013-08-12 16:05:30 +0200 (Mon, 12 Aug 2013)
New Revision: 28529

Modified:
   gnunet/src/util/crypto_ecc.c
Log:
-fix leaks (kind-of related to #2981)

Modified: gnunet/src/util/crypto_ecc.c
===================================================================
--- gnunet/src/util/crypto_ecc.c        2013-08-12 14:00:31 UTC (rev 28528)
+++ gnunet/src/util/crypto_ecc.c        2013-08-12 14:05:30 UTC (rev 28529)
@@ -975,7 +975,7 @@
   gcry_ctx_t ctx;
 
   GNUNET_assert (0 == gcry_mpi_ec_new (&ctx, NULL, CURVE));
-  n = gcry_mpi_ec_get_mpi ("n", ctx, 0 /* no copy */);
+  n = gcry_mpi_ec_get_mpi ("n", ctx, 1);
   GNUNET_CRYPTO_ecc_key_get_public (priv, &pub);
   h = derive_h (&pub, label, context);
   mpi_scan (&x, priv->d, sizeof (priv->d));
@@ -983,6 +983,8 @@
   gcry_mpi_mulm (d, h, x, n);
   gcry_mpi_release (h);
   gcry_mpi_release (x);
+  gcry_mpi_release (n);
+  gcry_ctx_release (ctx);
   ret = GNUNET_new (struct GNUNET_CRYPTO_EccPrivateKey);
   mpi_print (ret->d, sizeof (ret->d), d);
   gcry_mpi_release (d);
@@ -1028,7 +1030,7 @@
 
   /* calulcate h_mod_n = h % n */
   h = derive_h (pub, label, context);
-  n = gcry_mpi_ec_get_mpi ("n", ctx, 0 /* no copy */);
+  n = gcry_mpi_ec_get_mpi ("n", ctx, 1);
   h_mod_n = gcry_mpi_new (256);
   gcry_mpi_mod (h_mod_n, h, n);
   /* calculate v = h_mod_n * q */
@@ -1036,6 +1038,7 @@
   gcry_mpi_ec_mul (v, h_mod_n, q, ctx);
   gcry_mpi_release (h_mod_n);
   gcry_mpi_release (h);
+  gcry_mpi_release (n);
   gcry_mpi_point_release (q);
   /* convert point 'v' to public key that we return */
   point_to_public_key (v, ctx, result);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]