From edf6f59fac12cd6f7d0a14ecf2a47ab82a8beb17 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 27 Mar 2022 15:35:14 +0200 Subject: -logging, minor memory leak fix --- src/pq/pq_result_helper.c | 6 ++++++ src/util/crypto_kdf.c | 9 +++++---- src/util/crypto_rsa.c | 20 +++++++++++++------- 3 files changed, 24 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/pq/pq_result_helper.c b/src/pq/pq_result_helper.c index 2c11f5202..f3d246c36 100644 --- a/src/pq/pq_result_helper.c +++ b/src/pq/pq_result_helper.c @@ -1086,6 +1086,12 @@ extract_uint64 (void *cls, fnum)) { GNUNET_break (0); + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Got length %u for field `%s'\n", + PQgetlength (result, + row, + fnum), + fname); return GNUNET_SYSERR; } res = (uint64_t *) PQgetvalue (result, diff --git a/src/util/crypto_kdf.c b/src/util/crypto_kdf.c index 0dc734549..8041f61ab 100644 --- a/src/util/crypto_kdf.c +++ b/src/util/crypto_kdf.c @@ -43,7 +43,7 @@ * @param argp va_list of void * & size_t pairs for context chunks * @return #GNUNET_YES on success */ -int +enum GNUNET_GenericReturnValue GNUNET_CRYPTO_kdf_v (void *result, size_t out_len, const void *xts, @@ -62,7 +62,7 @@ GNUNET_CRYPTO_kdf_v (void *result, * hash function." * * http://eprint.iacr.org/2010/264 - */// + */ return GNUNET_CRYPTO_hkdf_v (result, out_len, GCRY_MD_SHA512, @@ -86,7 +86,7 @@ GNUNET_CRYPTO_kdf_v (void *result, * @param ... void * & size_t pairs for context chunks * @return #GNUNET_YES on success */ -int +enum GNUNET_GenericReturnValue GNUNET_CRYPTO_kdf (void *result, size_t out_len, const void *xts, @@ -145,6 +145,7 @@ GNUNET_CRYPTO_kdf_mod_mpi (gcry_mpi_t *r, uint8_t buf[ (nbits - 1) / 8 + 1 ]; uint16_t ctr_nbo = htons (ctr); + memset (buf, 0, sizeof (buf)); rc = GNUNET_CRYPTO_kdf (buf, sizeof(buf), xts, xts_len, @@ -160,7 +161,7 @@ GNUNET_CRYPTO_kdf_mod_mpi (gcry_mpi_t *r, sizeof(buf), &rsize); GNUNET_assert (0 == rc); /* Allocation error? */ - + GNUNET_assert (rsize == sizeof (buf)); gcry_mpi_clear_highbit (*r, nbits); GNUNET_assert (0 == gcry_mpi_test_bit (*r, nbits)); ++ctr; diff --git a/src/util/crypto_rsa.c b/src/util/crypto_rsa.c index 43e6eedac..610e5febc 100644 --- a/src/util/crypto_rsa.c +++ b/src/util/crypto_rsa.c @@ -497,7 +497,8 @@ GNUNET_CRYPTO_rsa_public_key_decode (const char *buf, * @return True if gcd(r,n) = 1, False means RSA key is malicious */ static int -rsa_gcd_validate (gcry_mpi_t r, gcry_mpi_t n) +rsa_gcd_validate (gcry_mpi_t r, + gcry_mpi_t n) { gcry_mpi_t g; int t; @@ -525,24 +526,29 @@ rsa_blinding_key_derive (const struct GNUNET_CRYPTO_RsaPublicKey *pkey, gcry_mpi_t n; blind = GNUNET_new (struct RsaBlindingKey); - GNUNET_assert (NULL != blind); /* Extract the composite n from the RSA public key */ - GNUNET_assert (0 == key_from_sexp (&n, pkey->sexp, "rsa", "n")); + GNUNET_assert (0 == + key_from_sexp (&n, + pkey->sexp, + "rsa", + "n")); /* Assert that it at least looks like an RSA key */ - GNUNET_assert (0 == gcry_mpi_get_flag (n, GCRYMPI_FLAG_OPAQUE)); - + GNUNET_assert (0 == + gcry_mpi_get_flag (n, + GCRYMPI_FLAG_OPAQUE)); GNUNET_CRYPTO_kdf_mod_mpi (&blind->r, n, xts, strlen (xts), bks, sizeof(*bks), "Blinding KDF"); - if (0 == rsa_gcd_validate (blind->r, n)) + if (0 == rsa_gcd_validate (blind->r, + n)) { + gcry_mpi_release (blind->r); GNUNET_free (blind); blind = NULL; } - gcry_mpi_release (n); return blind; } -- cgit v1.2.3