From 7c4dbfa5483b3eb6c90e84b32a45e87590c3be5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Al=D0=B5x=D0=B0nder=20Lysik=D0=BEv?= <alexander.lysikov@demlabs.net> Date: Thu, 13 Jun 2019 23:30:36 +0500 Subject: [PATCH] fixed memory corruption in dap_chain_ledger_addr_get_token_ticker_all() --- dap_chain_ledger.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dap_chain_ledger.c b/dap_chain_ledger.c index 7201976..a9d3722 100755 --- a/dap_chain_ledger.c +++ b/dap_chain_ledger.c @@ -404,7 +404,7 @@ void dap_chain_ledger_addr_get_token_ticker_all(dap_ledger_t *a_ledger, dap_chai DAP_DELETE(l_tx_hash); } l_tickers_size = l_tickers_pos + 1; - l_tickers = DAP_REALLOC(l_tickers, l_tickers_size); + l_tickers = DAP_REALLOC(l_tickers, l_tickers_size * sizeof(char*)); } *a_tickers = l_tickers; *a_tickers_size = l_tickers_pos; @@ -1071,7 +1071,7 @@ uint64_t dap_chain_ledger_calc_balance(dap_ledger_t *a_ledger, const dap_chain_a dap_ledger_wallet_balance_t *l_balance_item = NULL ,* l_balance_item_tmp = NULL; dap_ledger_wallet_balance_key_t l_balance_key = {{0}}; memcpy( &l_balance_key.addr, &a_addr, sizeof(a_addr)); - snprintf( l_balance_key.ticker,sizeof (l_balance_key.ticker),"%s",a_token_ticker); + snprintf(l_balance_key.ticker, sizeof(l_balance_key.ticker) - 1, "%s", a_token_ticker ? a_token_ticker : "???"); HASH_FIND(hh,PVT(a_ledger)->balance_accounts,&l_balance_key,sizeof(dap_ledger_wallet_balance_key_t),l_balance_item); if (l_balance_item) { log_it (L_DEBUG,"Found address in cache with balance %llu", l_balance_item->balance); -- GitLab