From 4e5acd246fe7be265a24427a66c84dbecae39058 Mon Sep 17 00:00:00 2001 From: "daniil.frolov" <daniil.frolov@demlabs.net> Date: Sun, 29 Dec 2024 12:11:29 +0300 Subject: [PATCH] [*] Ad NULL checking to tx saving into wallet cache --- dap-sdk | 2 +- modules/wallet/dap_chain_wallet_cache.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/dap-sdk b/dap-sdk index 9a18977ec8..d6b6934683 160000 --- a/dap-sdk +++ b/dap-sdk @@ -1 +1 @@ -Subproject commit 9a18977ec883160e4579162170047d6ce391add1 +Subproject commit d6b6934683168160e7d25647ceef59d9439de2c3 diff --git a/modules/wallet/dap_chain_wallet_cache.c b/modules/wallet/dap_chain_wallet_cache.c index 396c309d4d..e188ef930b 100644 --- a/modules/wallet/dap_chain_wallet_cache.c +++ b/modules/wallet/dap_chain_wallet_cache.c @@ -693,7 +693,8 @@ static int s_save_tx_into_wallet_cache(dap_chain_t *a_chain, dap_chain_datum_tx_ int l_prev_idx = ((dap_chain_tx_in_t*)it->data)->header.tx_out_prev_idx; if (dap_hash_fast_is_blank(&l_prev_tx_hash)) continue; - dap_chain_datum_tx_t *l_tx_prev = (dap_chain_datum_tx_t *)(a_chain->callback_datum_find_by_hash(a_chain, &l_prev_tx_hash, NULL, NULL)->data); + dap_chain_datum_t *l_prev_datum = a_chain->callback_datum_find_by_hash(a_chain, &l_prev_tx_hash, NULL, NULL); + dap_chain_datum_tx_t *l_tx_prev = l_prev_datum ? (dap_chain_datum_tx_t *)(l_prev_datum->data) : NULL; if (!l_tx_prev) continue; uint8_t* l_prev_item = dap_chain_datum_tx_item_get_nth(l_tx_prev, TX_ITEM_TYPE_OUT, l_prev_idx); @@ -935,7 +936,8 @@ static int s_save_tx_cache_for_addr(dap_chain_t *a_chain, dap_chain_addr_t *a_ad int l_prev_idx = ((dap_chain_tx_in_t*)l_tx_item)->header.tx_out_prev_idx; if (dap_hash_fast_is_blank(&l_prev_tx_hash)) continue; - dap_chain_datum_tx_t *l_tx_prev = (dap_chain_datum_tx_t *)(a_chain->callback_datum_find_by_hash(a_chain, &l_prev_tx_hash, NULL, NULL)->data); + dap_chain_datum_t *l_prev_datum = a_chain->callback_datum_find_by_hash(a_chain, &l_prev_tx_hash, NULL, NULL); + dap_chain_datum_tx_t *l_tx_prev = l_prev_datum ? (dap_chain_datum_tx_t *)(l_prev_datum->data) : NULL; if (!l_tx_prev) continue; uint8_t* l_prev_item = dap_chain_datum_tx_item_get_nth(l_tx_prev, TX_ITEM_TYPE_OUT, l_prev_idx); -- GitLab