commit 1a5f1cbdb517dc3b570f28fdedf2f136fbb0f2a8
parent 66472c927d16f35b57d3d22d2d64ff6cd1195398
Author: Christian Grothoff <christian@grothoff.org>
Date: Wed, 27 May 2026 17:21:53 +0200
fix NULL assertion if no exchanges are available at all
Diffstat:
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/backend/taler-merchant-httpd_post-private-orders.c b/src/backend/taler-merchant-httpd_post-private-orders.c
@@ -1794,8 +1794,10 @@ add_output_token_family (struct OrderContext *oc,
return GNUNET_SYSERR;
case GNUNET_DB_STATUS_SUCCESS_NO_RESULTS:
GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
- "Output token family slug %s unknown\n",
- slug);
+ "Output token family slug %s unknown at %llu for %llu\n",
+ slug,
+ (unsigned long long) valid_at.abs_time.abs_value_us,
+ (unsigned long long) oc->parse_order.order->pay_deadline.abs_time.abs_value_us);
reply_with_error (oc,
MHD_HTTP_NOT_FOUND,
TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_TOKEN_FAMILY_SLUG_UNKNOWN,
@@ -2400,9 +2402,10 @@ phase_select_wire_method (struct OrderContext *oc)
GNUNET_JSON_PACK (
TALER_JSON_pack_ec (
TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_AMOUNT_EXCEEDS_LEGAL_LIMITS),
- GNUNET_JSON_pack_array_incref (
- "exchange_rejections",
- oc->set_exchanges.exchange_rejections)),
+ GNUNET_JSON_pack_allow_null (
+ GNUNET_JSON_pack_array_incref (
+ "exchange_rejections",
+ oc->set_exchanges.exchange_rejections))),
MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS);
finalize_order (oc,
mret);