From 0180b37554a916573be934507afd09e381fa5e78 Mon Sep 17 00:00:00 2001 From: Roman Khlopkov <roman.khlopkov@demlabs.net> Date: Fri, 10 Sep 2021 07:50:25 +0300 Subject: [PATCH] [*] A little bugfixes --- modules/channel/chain/dap_stream_ch_chain.c | 6 ++++-- modules/common/dap_chain_datum_tx_items.c | 6 +----- modules/global-db/dap_chain_global_db_hist.c | 6 +++--- modules/net/dap_chain_net.c | 2 +- modules/net/dap_chain_node_cli_cmd.c | 2 +- 5 files changed, 10 insertions(+), 12 deletions(-) diff --git a/modules/channel/chain/dap_stream_ch_chain.c b/modules/channel/chain/dap_stream_ch_chain.c index 830f391af1..96fecb6129 100644 --- a/modules/channel/chain/dap_stream_ch_chain.c +++ b/modules/channel/chain/dap_stream_ch_chain.c @@ -574,7 +574,7 @@ static void s_gdb_in_pkt_error_worker_callback(dap_worker_t *a_worker, void *a_a dap_stream_ch_t *l_ch = dap_stream_ch_find_by_uuid_unsafe(DAP_STREAM_WORKER(a_worker), l_sync_request->ch_uuid); if( l_ch == NULL ){ log_it(L_INFO,"Client disconnected before we sent the reply"); - s_sync_request_delete(l_sync_request); + DAP_DELETE(l_sync_request); return; } @@ -653,8 +653,10 @@ static bool s_gdb_in_pkt_proc_callback(dap_proc_thread_t *a_thread, void *a_arg) } // save data to global_db if(!dap_chain_global_db_obj_save(l_obj, 1)) { + struct sync_request *l_sync_req_err = DAP_NEW_Z(struct sync_request); + memcpy(l_sync_req_err, l_sync_request, sizeof(struct sync_request)); dap_proc_thread_worker_exec_callback(a_thread, l_sync_request->worker->id, - s_gdb_in_pkt_error_worker_callback, l_sync_request); + s_gdb_in_pkt_error_worker_callback, l_sync_req_err); } else { if (s_debug_more) log_it(L_DEBUG, "Added new GLOBAL_DB synchronization record"); diff --git a/modules/common/dap_chain_datum_tx_items.c b/modules/common/dap_chain_datum_tx_items.c index 57556863a5..96f0ae56df 100644 --- a/modules/common/dap_chain_datum_tx_items.c +++ b/modules/common/dap_chain_datum_tx_items.c @@ -152,14 +152,10 @@ dap_chain_tx_token_t* dap_chain_datum_tx_item_token_create(dap_chain_hash_fast_t { if(!a_ticker) return NULL; - size_t a_ticker_len = strlen(a_ticker); dap_chain_tx_token_t *l_item = DAP_NEW_Z(dap_chain_tx_token_t); l_item->header.type = TX_ITEM_TYPE_TOKEN; memcpy (& l_item->header.token_emission_hash, a_datum_token_hash, sizeof ( *a_datum_token_hash ) ); - if(a_ticker_len >= sizeof(l_item->header.ticker)) - a_ticker_len = sizeof(l_item->header.ticker) - 1; - strncpy(l_item->header.ticker, a_ticker, a_ticker_len); - + strncpy(l_item->header.ticker, a_ticker, sizeof(l_item->header.ticker) - 1); return l_item; } diff --git a/modules/global-db/dap_chain_global_db_hist.c b/modules/global-db/dap_chain_global_db_hist.c index c68958a5fb..2fea00e1c0 100644 --- a/modules/global-db/dap_chain_global_db_hist.c +++ b/modules/global-db/dap_chain_global_db_hist.c @@ -158,7 +158,7 @@ static void *s_list_thread_proc(void *arg) l_obj_type = 'd'; size_t l_del_name_len = strlen(l_group_cur->name) - 4; //strlen(".del"); l_del_group_name_replace = DAP_NEW_SIZE(char, l_del_name_len + 1); - strncpy(l_del_group_name_replace, l_group_cur->name, l_del_name_len); + memcpy(l_del_group_name_replace, l_group_cur->name, l_del_name_len); l_del_group_name_replace[l_del_name_len] = '\0'; } else { l_obj_type = 'a'; @@ -192,8 +192,6 @@ static void *s_list_thread_proc(void *arg) if (!l_dap_db_log_list->is_process) break; } - if (l_del_group_name_replace) - DAP_DELETE(l_del_group_name_replace); dap_store_obj_free(l_objs, l_item_count); pthread_mutex_lock(&l_dap_db_log_list->list_mutex); // add l_list to list_write @@ -203,6 +201,8 @@ static void *s_list_thread_proc(void *arg) l_dap_db_log_list->list_read = l_list; pthread_mutex_unlock(&l_dap_db_log_list->list_mutex); } + if (l_del_group_name_replace) + DAP_DELETE(l_del_group_name_replace); } pthread_mutex_lock(&l_dap_db_log_list->list_mutex); diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c index 1d26565b6d..3e8f226f55 100644 --- a/modules/net/dap_chain_net.c +++ b/modules/net/dap_chain_net.c @@ -296,7 +296,7 @@ int dap_chain_net_state_go_to(dap_chain_net_t * a_net, dap_chain_net_state_t a_n pthread_mutex_lock( &PVT(a_net)->state_mutex_cond); // Preventing call of state_go_to before wait cond will be armed // set flag for sync PVT(a_net)->flags |= F_DAP_CHAIN_NET_GO_SYNC; - //PVT(a_net)->flags |= F_DAP_CHAIN_NET_SYNC_FROM_ZERO; + PVT(a_net)->flags |= F_DAP_CHAIN_NET_SYNC_FROM_ZERO; #ifndef _WIN32 pthread_cond_signal( &PVT(a_net)->state_proc_cond ); #else diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c index e7da6ab2f7..bdb5a2e59d 100644 --- a/modules/net/dap_chain_node_cli_cmd.c +++ b/modules/net/dap_chain_node_cli_cmd.c @@ -3250,7 +3250,7 @@ int com_token_emit(int a_argc, char ** a_argv, void *a_arg_func, char ** a_str_r sizeof(l_emission->data.type_auth.signs_count); l_emission = DAP_NEW_Z_SIZE(dap_chain_datum_token_emission_t, l_emission_size); - strncpy(l_emission->hdr.ticker, l_ticker, sizeof(l_emission->hdr.ticker)); + strncpy(l_emission->hdr.ticker, l_ticker, sizeof(l_emission->hdr.ticker) - 1); l_emission->hdr.value = l_emission_value; l_emission->hdr.type = DAP_CHAIN_DATUM_TOKEN_EMISSION_TYPE_AUTH; memcpy(&l_emission->hdr.address, l_addr, sizeof(l_emission->hdr.address)); -- GitLab