diff --git a/modules/channel/chain-net/dap_stream_ch_chain_net.c b/modules/channel/chain-net/dap_stream_ch_chain_net.c index 3bc1d829ddea5eb4a4a7e0883de688ec00334cc3..f06679a9a91c0de75cf2280673c780f240fefde6 100644 --- a/modules/channel/chain-net/dap_stream_ch_chain_net.c +++ b/modules/channel/chain-net/dap_stream_ch_chain_net.c @@ -170,9 +170,11 @@ void s_stream_ch_delete(dap_stream_ch_t* a_ch, void* a_arg) (void) a_arg; //printf("* del session=%d\n", a_ch->stream->session->id); dap_stream_ch_chain_net_t * l_ch_chain_net = DAP_STREAM_CH_CHAIN_NET(a_ch); - pthread_mutex_lock(&l_ch_chain_net->mutex); - session_data_del(a_ch->stream->session->id); - pthread_mutex_unlock(&l_ch_chain_net->mutex); + if(l_ch_chain_net) { + pthread_mutex_lock(&l_ch_chain_net->mutex); + session_data_del(a_ch->stream->session->id); + pthread_mutex_unlock(&l_ch_chain_net->mutex); + } } /** diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c index fb3731e98df40e5610f20bdd12398dc30b09f9d5..b7e3639f0e27d2bb2574e2cc0d9e86828cecc113 100644 --- a/modules/net/dap_chain_net.c +++ b/modules/net/dap_chain_net.c @@ -398,7 +398,12 @@ static int s_net_states_proc(dap_chain_net_t * l_net) for (int i = 0; i < MIN(s_max_links_count, l_pvt_net->seed_aliases_count); i++) { dap_chain_node_addr_t *l_link_addr = dap_chain_node_alias_find(l_net, l_pvt_net->seed_aliases[i]); dap_chain_node_info_t *l_link_node_info = dap_chain_node_info_read(l_net, l_link_addr); - l_pvt_net->links_info = dap_list_append(l_pvt_net->links_info, l_link_node_info); + if(l_link_node_info) { + l_pvt_net->links_info = dap_list_append(l_pvt_net->links_info, l_link_addr); + } + else{ + log_it(L_WARNING, "Not found link "NODE_ADDR_FP_STR" in the node list", NODE_ADDR_FPS_ARGS(l_link_addr)); + } } } break; case NODE_ROLE_FULL: @@ -410,14 +415,16 @@ static int s_net_states_proc(dap_chain_net_t * l_net) int i = rand() % l_pvt_net->seed_aliases_count; dap_chain_node_addr_t *l_remote_addr = dap_chain_node_alias_find(l_net, l_pvt_net->seed_aliases[i]); dap_chain_node_info_t *l_remote_node_info = dap_chain_node_info_read(l_net, l_remote_addr); - dap_chain_node_info_t *l_link_node_info = DAP_NEW_Z(dap_chain_node_info_t); - int res = 0;//dap_dns_client_get_addr(l_remote_node_info->hdr.ext_addr_v4.s_addr, l_net->pub.name, l_link_node_info); - memcpy(l_link_node_info, l_remote_node_info, sizeof(dap_chain_node_info_t)); - DAP_DELETE(l_remote_node_info); - if (res) { - DAP_DELETE(l_link_node_info); - } else { + if(l_remote_node_info) { + dap_chain_node_info_t *l_link_node_info = DAP_NEW_Z(dap_chain_node_info_t); + int res = 0; //dap_dns_client_get_addr(l_remote_node_info->hdr.ext_addr_v4.s_addr, l_net->pub.name, l_link_node_info); + memcpy(l_link_node_info, l_remote_node_info, sizeof(dap_chain_node_info_t)); l_pvt_net->links_info = dap_list_append(l_pvt_net->links_info, l_link_node_info); + //DAP_DELETE(l_link_node_info); + DAP_DELETE(l_remote_node_info); + } + else{ + log_it(L_WARNING, "Not found link "NODE_ADDR_FP_STR" in the node list", NODE_ADDR_FPS_ARGS(l_remote_addr)); } if (l_pvt_net->state_target == NET_STATE_OFFLINE) { l_pvt_net->state = NET_STATE_OFFLINE;