merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

commit 52605d87b8ee478ebae3c3a1d272e277ca0084b8
parent 7c3e6bcb82aeb920bef37aaaceac7d31a3c502b7
Author: bohdan-potuzhnyi <bohdan.potuzhnyi@gmail.com>
Date:   Mon,  4 Aug 2025 20:44:19 +0200

fixing some leaks

Diffstat:
Msrc/testing/testing_api_cmd_pay_order.c | 45+++++++++++++++++++--------------------------
Msrc/testing/testing_api_cmd_post_donau_instances.c | 1+
2 files changed, 20 insertions(+), 26 deletions(-)

diff --git a/src/testing/testing_api_cmd_pay_order.c b/src/testing/testing_api_cmd_pay_order.c @@ -1539,31 +1539,6 @@ TALER_TESTING_cmd_merchant_pay_order_donau (const char *label, const char *salt) { struct PayState *ps; - struct MerchantDonauPayData *mdpd; - - mdpd = GNUNET_new (struct MerchantDonauPayData); - mdpd->year = year; - mdpd->num_bkps = 5; - mdpd->charity_reference = charity_reference; - - /* Here we generate the h_donor_tax_id*/ - { - crypto_hash_sha512_state state; - size_t tax_length = strlen (donor_tax_id); - size_t salt_length = strlen (salt); - - crypto_hash_sha512_init (&state); - crypto_hash_sha512_update (&state, - (const unsigned char*) donor_tax_id, - tax_length); - crypto_hash_sha512_update (&state, - (const unsigned char*) salt, - salt_length); - GNUNET_static_assert (sizeof (mdpd->h_donor_tax_id.hash) == 512 / 8); - crypto_hash_sha512_final (&state, - mdpd->h_donor_tax_id.hash); - } - /* End of hash generation */ ps = GNUNET_new (struct PayState); ps->http_status = http_status; @@ -1575,8 +1550,26 @@ TALER_TESTING_cmd_merchant_pay_order_donau (const char *label, ps->session_id = session_id; ps->token_reference = NULL; ps->choice_index = choice_index; - ps->donau_data = *mdpd; /* Adding prefilled data, for future processing*/ + ps->donau_data.year = year; + ps->donau_data.num_bkps = 5; + ps->donau_data.charity_reference = charity_reference; + /* Compute h_donor_tax_id directly into ps->donau_data: */ +{ + crypto_hash_sha512_state state; + size_t tax_length = strlen(donor_tax_id); + size_t salt_length = strlen(salt); + crypto_hash_sha512_init(&state); + crypto_hash_sha512_update(&state, + (const unsigned char*)donor_tax_id, + tax_length); + crypto_hash_sha512_update(&state, + (const unsigned char*)salt, + salt_length); + crypto_hash_sha512_final(&state, + ps->donau_data.h_donor_tax_id.hash); +} + { struct TALER_TESTING_Command cmd = { .cls = ps, diff --git a/src/testing/testing_api_cmd_post_donau_instances.c b/src/testing/testing_api_cmd_post_donau_instances.c @@ -231,6 +231,7 @@ TALER_TESTING_cmd_merchant_post_donau_instance (const char *label, .receipts_to_date = date_amount, .current_year = 2025 }; + GNUNET_free(charity_pub); pds->merchant_reference = merchant_reference; pds->merchant_url = url;