diff options
author | Christian Grothoff <christian@grothoff.org> | 2016-06-11 14:20:28 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2016-06-11 14:20:28 +0000 |
commit | fcbbb6b6eb594be079894681d23e318918f6bf26 (patch) | |
tree | 41533342b46fda4f3277bd8de01a60b26925d14d /src/util/crypto_kdf.c | |
parent | f06baa8a2c99545167142049f19f4a7bedfe1764 (diff) | |
download | gnunet-fcbbb6b6eb594be079894681d23e318918f6bf26.tar.gz gnunet-fcbbb6b6eb594be079894681d23e318918f6bf26.zip |
fix memroy leak
Diffstat (limited to 'src/util/crypto_kdf.c')
-rw-r--r-- | src/util/crypto_kdf.c | 12 |
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, | |||
108 | void | 108 | void |
109 | GNUNET_CRYPTO_kdf_mod_mpi (gcry_mpi_t *r, | 109 | GNUNET_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 | |||