From bab213e7945b03bf595bf7c36ef61421cf202ff3 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Thu, 25 Nov 2021 09:43:01 +0100 Subject: work on #7099 --- src/util/crypto_helper_rsa.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/util/crypto_helper_rsa.c') diff --git a/src/util/crypto_helper_rsa.c b/src/util/crypto_helper_rsa.c index f9c4d60fc..85741d5e5 100644 --- a/src/util/crypto_helper_rsa.c +++ b/src/util/crypto_helper_rsa.c @@ -445,8 +445,8 @@ TALER_CRYPTO_helper_rsa_sign ( ssize_t ret; ret = recv (dh->sock, - buf, - sizeof (buf), + &buf[off], + sizeof (buf) - off, (finished && (0 == off)) ? MSG_DONTWAIT : 0); @@ -483,8 +483,14 @@ more: switch (ntohs (hdr->type)) { case TALER_HELPER_RSA_MT_RES_SIGNATURE: - if ( (msize < sizeof (struct TALER_CRYPTO_SignResponse)) || - (finished) ) + if (msize < sizeof (struct TALER_CRYPTO_SignResponse)) + { + GNUNET_break_op (0); + do_disconnect (dh); + *ec = TALER_EC_EXCHANGE_DENOMINATION_HELPER_BUG; + goto end; + } + if (finished) { GNUNET_break_op (0); do_disconnect (dh); @@ -525,7 +531,8 @@ more: (const struct TALER_CRYPTO_SignFailure *) buf; *ec = (enum TALER_ErrorCode) ntohl (sf->ec); - return ds; + finished = true; + break; } case TALER_HELPER_RSA_MT_AVAIL: if (GNUNET_OK != -- cgit v1.2.3