diff options
author | Christian Grothoff <christian@grothoff.org> | 2021-11-25 09:43:01 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2021-11-25 09:43:01 +0100 |
commit | bab213e7945b03bf595bf7c36ef61421cf202ff3 (patch) | |
tree | 2dbea6f98fc29da0522579f339e796caccdfaff3 /src/util/crypto_helper_rsa.c | |
parent | ed6634f98e749ad0acc01aff59a98c058c7bd9e6 (diff) | |
download | exchange-bab213e7945b03bf595bf7c36ef61421cf202ff3.tar.xz |
work on #7099
Diffstat (limited to 'src/util/crypto_helper_rsa.c')
-rw-r--r-- | src/util/crypto_helper_rsa.c | 17 |
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 != |