diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c index 8d0616751683cf97f91dc97cf4809b1215cf9590..9643e24a949ade38bef79f7eab6fe2401d96a75f 100644 --- a/modules/net/dap_chain_net.c +++ b/modules/net/dap_chain_net.c @@ -771,8 +771,7 @@ static dap_chain_net_t *s_net_new(dap_chain_net_id_t *a_id, const char *a_name, DAP_DELETE(l_ret); return NULL; } - l_ret->pub.name = dap_strdup( a_name ); - l_ret->pub.native_ticker = dap_strdup( a_native_ticker ); + if (!(l_ret->pub.name = dap_strdup(a_name)) || !(l_ret->pub.native_ticker = dap_strdup( a_native_ticker ))) DAP_DEL_MULTY(l_ret->pub.name, l_ret->pub.native_ticker, l_ret); @@ -2200,13 +2199,15 @@ bool s_net_load(void *a_arg) l_net->pub.fee_addr = c_dap_chain_addr_blank; if (!dap_chain_load_all(l_chain)) { log_it (L_NOTICE, "Loaded chain files"); - if ( DAP_CHAIN_PVT(l_chain)->need_reorder ) { + if ( DAP_CHAIN_PVT(l_chain)->need_reorder ) + { log_it(L_DAP, "Reordering chain files for chain %s", l_chain->name); if (l_chain->callback_atom_add_from_treshold) { while (l_chain->callback_atom_add_from_treshold(l_chain, NULL)) log_it(L_DEBUG, "Added atom from treshold"); } dap_chain_save_all(l_chain); + DAP_CHAIN_PVT(l_chain)->need_reorder = false; if (l_chain->callback_purge) { dap_chain_net_decree_purge(l_net); diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c index e0cb08507ef807440cede4d3d5de445148fa51ec..0bd77659346871b0291c30fce7ad44fe31e26fa6 100644 --- a/modules/net/dap_chain_node_cli_cmd.c +++ b/modules/net/dap_chain_node_cli_cmd.c @@ -1966,6 +1966,7 @@ int l_arg_index = 1, l_rc, cmd_num = CMD_NONE; "Can't find network id 0x%016"DAP_UINT64_FORMAT_X" from address %s", l_addr->net_id.uint64, l_addr_str); json_object_put(json_arr_out); + DAP_DELETE(l_addr); return DAP_CHAIN_NODE_CLI_COM_TX_WALLET_NET_ERR; } } @@ -2035,6 +2036,8 @@ int l_arg_index = 1, l_rc, cmd_num = CMD_NONE; json_object_object_add(json_obj_wall, "tokens", j_arr_balance); json_object_array_add(json_arr_out, json_obj_wall); DAP_DELETE(l_l_addr_tokens); + DAP_DELETE(l_addr); + if(l_wallet) dap_chain_wallet_close(l_wallet); break; @@ -7495,7 +7498,6 @@ int com_exit(int a_argc, char **a_argv, void **a_str_reply) return 0; } - /** * @brief com_print_log Print log info * print_log [ts_after <timestamp >] [limit <line numbers>] diff --git a/modules/type/dag/dap_chain_cs_dag.c b/modules/type/dag/dap_chain_cs_dag.c index 9b7a2de327d5d8233ab0c78d2bd58d4ebb35a9d1..cb7d0612827fe5f4f26ed4f3183879c49f8f0de5 100644 --- a/modules/type/dag/dap_chain_cs_dag.c +++ b/modules/type/dag/dap_chain_cs_dag.c @@ -540,9 +540,11 @@ static dap_chain_atom_verify_res_t s_chain_callback_atom_add(dap_chain_t * a_cha debug_if(s_debug_more, L_WARNING, "... added with ledger code %d", l_consensus_check); break; } + dap_chain_cs_dag_event_item_t *l_tail = HASH_LAST(PVT(l_dag)->events); if (l_tail && l_tail->ts_created > l_event->header.ts_created) { DAP_CHAIN_PVT(a_chain)->need_reorder = true; + HASH_ADD_INORDER(hh, PVT(l_dag)->events, hash, sizeof(l_event_item->hash), l_event_item, s_sort_event_item); dap_chain_cs_dag_event_item_t *it = PVT(l_dag)->events; for (uint64_t i = 0; it; it = it->hh.next) // renumber chain events