exchange

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

commit 7456ef646409571e0fefc5044a6c1d2ffca7a955
parent 95704454b53cc870d58b29839aaeb088e0cd4538
Author: Christian Grothoff <christian@grothoff.org>
Date:   Mon, 29 Jun 2026 23:06:10 +0200

add missing error handling

Diffstat:
Msrc/exchange/taler-exchange-drain.c | 25+++++++++++++++++++++++++
Msrc/exchange/taler-exchange-httpd_common_kyc.c | 7++++++-
2 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/src/exchange/taler-exchange-drain.c b/src/exchange/taler-exchange-drain.c @@ -322,6 +322,31 @@ run_drain (void *cls) GNUNET_free (buf); } GNUNET_free (payto_uri.full_payto); + switch (qs) + { + case GNUNET_DB_STATUS_HARD_ERROR: + TALER_EXCHANGEDB_rollback (pg); + GNUNET_break (0); + global_ret = EXIT_FAILURE; + GNUNET_SCHEDULER_shutdown (); + return; + case GNUNET_DB_STATUS_SOFT_ERROR: + TALER_EXCHANGEDB_rollback (pg); + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Failed: database serialization issue\n"); + global_ret = EXIT_FAILURE; + GNUNET_SCHEDULER_shutdown (); + return; + case GNUNET_DB_STATUS_SUCCESS_NO_RESULTS: + TALER_EXCHANGEDB_rollback (pg); + GNUNET_break (0); + global_ret = EXIT_FAILURE; + GNUNET_SCHEDULER_shutdown (); + return; + default: + /* continued below */ + break; + } qs = TALER_EXCHANGEDB_profit_drains_set_finished (pg, serial); switch (qs) diff --git a/src/exchange/taler-exchange-httpd_common_kyc.c b/src/exchange/taler-exchange-httpd_common_kyc.c @@ -351,7 +351,12 @@ TEH_kyc_store_attributes ( { form_id = json_string_value (json_object_get (new_attributes, "FORM_ID")); - GNUNET_assert (NULL != form_id); + if (NULL == form_id) + { + /* invalid input, FORM_ID is mandatory, caller is bad */ + GNUNET_break (0); + return GNUNET_DB_STATUS_HARD_ERROR; + } TALER_CRYPTO_kyc_attributes_encrypt (&TEH_attribute_key, new_attributes, &ea,