aboutsummaryrefslogtreecommitdiff
path: root/src/util/crypto_kdf.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2016-06-11 14:20:28 +0000
committerChristian Grothoff <christian@grothoff.org>2016-06-11 14:20:28 +0000
commitfcbbb6b6eb594be079894681d23e318918f6bf26 (patch)
tree41533342b46fda4f3277bd8de01a60b26925d14d /src/util/crypto_kdf.c
parentf06baa8a2c99545167142049f19f4a7bedfe1764 (diff)
downloadgnunet-fcbbb6b6eb594be079894681d23e318918f6bf26.tar.gz
gnunet-fcbbb6b6eb594be079894681d23e318918f6bf26.zip
fix memroy leak
Diffstat (limited to 'src/util/crypto_kdf.c')
-rw-r--r--src/util/crypto_kdf.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/util/crypto_kdf.c b/src/util/crypto_kdf.c
index c760ba33a..b62b5c847 100644
--- a/src/util/crypto_kdf.c
+++ b/src/util/crypto_kdf.c
@@ -108,7 +108,7 @@ GNUNET_CRYPTO_kdf (void *result, size_t out_len,
108void 108void
109GNUNET_CRYPTO_kdf_mod_mpi (gcry_mpi_t *r, 109GNUNET_CRYPTO_kdf_mod_mpi (gcry_mpi_t *r,
110 gcry_mpi_t n, 110 gcry_mpi_t n,
111 const void *xts, size_t xts_len, 111 const void *xts, size_t xts_len,
112 const void *skm, size_t skm_len, 112 const void *skm, size_t skm_len,
113 const char *ctx) 113 const char *ctx)
114{ 114{
@@ -121,7 +121,8 @@ GNUNET_CRYPTO_kdf_mod_mpi (gcry_mpi_t *r,
121 /* GNUNET_assert (nbits > 512); */ 121 /* GNUNET_assert (nbits > 512); */
122 122
123 ctr = 0; 123 ctr = 0;
124 do { 124 while (1)
125 {
125 /* Ain't clear if n is always divisible by 8 */ 126 /* Ain't clear if n is always divisible by 8 */
126 uint8_t buf[ (nbits-1)/8 + 1 ]; 127 uint8_t buf[ (nbits-1)/8 + 1 ];
127 128
@@ -145,7 +146,8 @@ GNUNET_CRYPTO_kdf_mod_mpi (gcry_mpi_t *r,
145 GNUNET_assert( 0 == gcry_mpi_test_bit (*r, nbits) ); 146 GNUNET_assert( 0 == gcry_mpi_test_bit (*r, nbits) );
146 ++ctr; 147 ++ctr;
147 /* We reject this FDH if either *r > n and retry with another ctr */ 148 /* We reject this FDH if either *r > n and retry with another ctr */
148 } while ( 0 <= gcry_mpi_cmp(*r,n) ); 149 if (0 > gcry_mpi_cmp(*r, n))
150 break;
151 gcry_mpi_release (*r);
152 }
149} 153}
150
151