From 5e206e7c3023f5b3803c286b7d44ae50f542bd0d Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Thu, 25 Aug 2022 20:32:50 +0200 Subject: EC instead of SEGV --- src/bank-lib/fakebank.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'src/bank-lib') diff --git a/src/bank-lib/fakebank.c b/src/bank-lib/fakebank.c index 4ad1be92a..0123f7c51 100644 --- a/src/bank-lib/fakebank.c +++ b/src/bank-lib/fakebank.c @@ -2864,16 +2864,6 @@ do_post_withdrawal (struct TALER_FAKEBANK_Handle *h, "exchange account changed"); } wo->exchange_account = credit_account; - if (NULL == wo->exchange_account) - { - GNUNET_assert (0 == - pthread_mutex_unlock (&h->big_lock)); - return TALER_MHD_reply_with_error (connection, - MHD_HTTP_NOT_FOUND, - TALER_EC_BANK_UNKNOWN_ACCOUNT, - exchange_payto_uri); - } - wo->reserve_pub = *reserve_pub; wo->selection_done = true; GNUNET_assert (0 == @@ -3606,6 +3596,15 @@ access_withdrawals_confirm (struct TALER_FAKEBANK_Handle *h, TALER_EC_BANK_TRANSACTION_NOT_FOUND, account_name); } + if (NULL == wo->exchange_account) + { + GNUNET_assert (0 == + pthread_mutex_unlock (&h->big_lock)); + return TALER_MHD_reply_with_error (connection, + MHD_HTTP_BAD_REQUEST, + TALER_EC_BANK_POST_WITHDRAWAL_OPERATION_REQUIRED, + NULL); + } if (wo->aborted) { GNUNET_assert (0 == @@ -4089,8 +4088,13 @@ TALER_FAKEBANK_start2 (uint16_t port, { struct TALER_Amount zero; - TALER_amount_set_zero (currency, - &zero); + if (GNUNET_OK != + TALER_amount_set_zero (currency, + &zero)) + { + GNUNET_break (0); + return NULL; + } return TALER_FAKEBANK_start3 ("localhost", port, NULL, -- cgit v1.2.3