exchange

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

commit 8ebb4cda07f92f217f3388eaccabf9589fdb0800
parent 40a64e8f0c4da9d99f1352004b572052da1cecb7
Author: Christian Grothoff <christian@grothoff.org>
Date:   Mon,  2 Apr 2018 16:35:14 +0200

fix NULL termination of fee list

Diffstat:
Msrc/exchange-lib/exchange_api_wire.c | 4+++-
Msrc/exchange-tools/taler-exchange-wire.c | 11+++++++++++
2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/exchange-lib/exchange_api_wire.c b/src/exchange-lib/exchange_api_wire.c @@ -167,8 +167,10 @@ parse_fees (json_t *fees) free_fees (fm); return NULL; } - if (idx < len) + if (idx + 1 < len) wa->next = &fe->fee_list[idx + 1]; + else + wa->next = NULL; } } return fm; diff --git a/src/exchange-tools/taler-exchange-wire.c b/src/exchange-tools/taler-exchange-wire.c @@ -76,6 +76,16 @@ sign_account_data (void *cls, JSON_INDENT(2)); json_decref (wire); GNUNET_assert (NULL != json_out); + if (GNUNET_OK != + GNUNET_DISK_directory_create_for_file (ai->wire_response_filename)) + { + GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, + "mkdir", + ai->wire_response_filename); + global_ret = 1; + free (json_out); + return; + } out = fopen (ai->wire_response_filename, "w+"); @@ -85,6 +95,7 @@ sign_account_data (void *cls, "fopen", ai->wire_response_filename); global_ret = 1; + free (json_out); return; } fprintf (out,