exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

commit 982b60c93c7a12defdd109721da0d5e9423efdaa
parent 446761b6029298410000181697abef5dbdbd4b57
Author: Christian Grothoff <christian@grothoff.org>
Date:   Tue,  7 Jun 2022 17:04:23 +0200

-more minor bugfixes

Diffstat:
Msrc/util/taler-exchange-secmod-cs.c | 4++++
Msrc/util/taler-exchange-secmod-rsa.c | 13+++++++++++++
2 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/src/util/taler-exchange-secmod-cs.c b/src/util/taler-exchange-secmod-cs.c @@ -824,6 +824,8 @@ cs_update_client_keys (struct TES_Client *client) memcpy (&buf[obs], &pn, sizeof (pn)); + GNUNET_assert (obs + sizeof (pn) + > obs); obs += sizeof (pn); } else @@ -831,6 +833,8 @@ cs_update_client_keys (struct TES_Client *client) memcpy (&buf[obs], key->an, ntohs (key->an->header.size)); + GNUNET_assert (obs + ntohs (key->an->header.size) + > obs); obs += ntohs (key->an->header.size); } } diff --git a/src/util/taler-exchange-secmod-rsa.c b/src/util/taler-exchange-secmod-rsa.c @@ -743,6 +743,11 @@ handle_batch_sign_request (struct TES_Client *client, struct BatchJob jobs[bs]; bool failure = false; + if (bs > TALER_MAX_FRESH_COINS) + { + GNUNET_break_op (0); + return GNUNET_SYSERR; + } while ( (bs > 0) && (size > sizeof (struct TALER_CRYPTO_SignRequest)) ) { @@ -1087,6 +1092,8 @@ rsa_client_init (struct TES_Client *client) NULL != dk; dk = dk->next) { + GNUNET_assert (obs + ntohs (dk->an->header.size) + > obs); obs += ntohs (dk->an->header.size); } } @@ -1103,6 +1110,8 @@ rsa_client_init (struct TES_Client *client) memcpy (&buf[obs], dk->an, ntohs (dk->an->header.size)); + GNUNET_assert (obs + ntohs (dk->an->header.size) + > obs); obs += ntohs (dk->an->header.size); } } @@ -1202,6 +1211,8 @@ rsa_update_client_keys (struct TES_Client *client) memcpy (&buf[obs], &pn, sizeof (pn)); + GNUNET_assert (obs + sizeof (pn) + > obs); obs += sizeof (pn); } else @@ -1209,6 +1220,8 @@ rsa_update_client_keys (struct TES_Client *client) memcpy (&buf[obs], key->an, ntohs (key->an->header.size)); + GNUNET_assert (obs + ntohs (key->an->header.size) + > obs); obs += ntohs (key->an->header.size); } }