summaryrefslogtreecommitdiff
path: root/src/util/crypto_helper_rsa.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-11-25 09:43:01 +0100
committerChristian Grothoff <christian@grothoff.org>2021-11-25 09:43:01 +0100
commitbab213e7945b03bf595bf7c36ef61421cf202ff3 (patch)
tree2dbea6f98fc29da0522579f339e796caccdfaff3 /src/util/crypto_helper_rsa.c
parented6634f98e749ad0acc01aff59a98c058c7bd9e6 (diff)
downloadexchange-bab213e7945b03bf595bf7c36ef61421cf202ff3.tar.gz
exchange-bab213e7945b03bf595bf7c36ef61421cf202ff3.tar.bz2
exchange-bab213e7945b03bf595bf7c36ef61421cf202ff3.zip
work on #7099
Diffstat (limited to 'src/util/crypto_helper_rsa.c')
-rw-r--r--src/util/crypto_helper_rsa.c17
1 files changed, 12 insertions, 5 deletions
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 !=