From f5fc13b5e9e9e4ebcea359e2ee1a177391d00d2f Mon Sep 17 00:00:00 2001 From: Dmitriy Gerasimov <dmitry.gerasimov@demlabs.net> Date: Tue, 10 Aug 2021 19:55:55 +0700 Subject: [PATCH] [*] Fixed UUID search for NULL worker. Need to find, where it happens. --- CMakeLists.txt | 2 +- dap-sdk/net/stream/ch/dap_stream_ch.c | 5 ++++- modules/net/dap_chain_net.c | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 99bed70dc5..7d88e6219d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ project(cellframe-sdk C) cmake_minimum_required(VERSION 3.0) set(CMAKE_C_STANDARD 11) -set(CELLFRAME_SDK_NATIVE_VERSION "2.9-24") +set(CELLFRAME_SDK_NATIVE_VERSION "2.9-25") add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"") set(DAPSDK_MODULES "") message("Cellframe modules: ${CELLFRAME_MODULES}") diff --git a/dap-sdk/net/stream/ch/dap_stream_ch.c b/dap-sdk/net/stream/ch/dap_stream_ch.c index d0e8ec1d2e..9c890990f5 100644 --- a/dap-sdk/net/stream/ch/dap_stream_ch.c +++ b/dap-sdk/net/stream/ch/dap_stream_ch.c @@ -149,7 +149,10 @@ void dap_stream_ch_delete(dap_stream_ch_t *a_ch) */ dap_stream_ch_t * dap_stream_ch_find_by_uuid_unsafe(dap_stream_worker_t * a_worker, dap_stream_ch_uuid_t a_ch_uuid) { - if ( a_worker->channels){ + if( a_worker == NULL ){ + log_it(L_WARNING,"Attempt to search for uuid 0x%016llu in NULL worker", a_ch_uuid); + return NULL; + } else if ( a_worker->channels){ dap_stream_ch_t * l_ch = NULL; pthread_rwlock_rdlock(&a_worker->channels_rwlock); HASH_FIND(hh_worker,a_worker->channels ,&a_ch_uuid, sizeof(a_ch_uuid), l_ch ); diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c index eef2352e4d..9ea827be42 100644 --- a/modules/net/dap_chain_net.c +++ b/modules/net/dap_chain_net.c @@ -483,6 +483,7 @@ static void s_node_link_callback_connected(dap_chain_node_client_t * a_node_clie a_node_client->ch_chain_net = dap_client_get_stream_ch_unsafe(a_node_client->client,dap_stream_ch_chain_get_id() ); if(a_node_client->ch_chain_net) a_node_client->ch_chain_net_uuid = a_node_client->ch_chain_net->uuid; + dap_stream_ch_chain_pkt_write_unsafe( a_node_client->ch_chain , DAP_STREAM_CH_CHAIN_PKT_TYPE_UPDATE_GLOBAL_DB_REQ, l_net->pub.id.uint64, l_chain_id.uint64, l_net->pub.cell_id.uint64, &l_sync_gdb, sizeof(l_sync_gdb)); -- GitLab