From 65c242e779b5ea97586b90c4409fb69e4b3561cf Mon Sep 17 00:00:00 2001 From: "daniil.frolov" <daniil.frolov@demlabs.net> Date: Fri, 16 Feb 2024 21:19:32 +0000 Subject: [PATCH] hotfix-10533_port --- modules/net/srv/dap_chain_net_srv.c | 7 ++++++- modules/service/xchange/dap_chain_net_srv_xchange.c | 3 --- .../service/xchange/include/dap_chain_net_srv_xchange.h | 1 - 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/modules/net/srv/dap_chain_net_srv.c b/modules/net/srv/dap_chain_net_srv.c index a8b7d359f6..be4dc5d5c7 100644 --- a/modules/net/srv/dap_chain_net_srv.c +++ b/modules/net/srv/dap_chain_net_srv.c @@ -865,7 +865,7 @@ dap_chain_net_srv_price_t * dap_chain_net_srv_get_price_from_order(dap_chain_net } uint64_t l_max_price_cfg = dap_config_get_item_uint64_default(g_config, a_config_section, "max_price", 0xFFFFFFFFFFFFFFF); - if (l_order->node_addr.uint64 != l_node_addr->uint64 && + if (l_order->node_addr.uint64 != g_node_addr.uint64 && l_order->srv_uid.uint64 != a_srv->uid.uint64) { DAP_DELETE(l_price); DAP_DEL_Z(l_order); @@ -962,9 +962,14 @@ int dap_chain_net_srv_price_apply_from_my_order(dap_chain_net_srv_t *a_srv, cons uint64_t l_max_price_cfg = dap_config_get_item_uint64_default(g_config, a_config_section, "max_price", 0xFFFFFFFFFFFFFFF); char *l_gdb_order_group = dap_chain_net_srv_order_get_gdb_group(l_net); dap_global_db_obj_t *l_orders = dap_global_db_get_all_sync(l_gdb_order_group, &l_orders_count); + log_it(L_INFO, "Found %"DAP_UINT64_FORMAT_U" orders.", l_orders_count); for (size_t i=0; i < l_orders_count; i++){ l_err_code = -4; dap_chain_net_srv_order_t *l_order = dap_chain_net_srv_order_read(l_orders[i].value, l_orders[i].value_len); + if(!l_order){ + log_it(L_ERROR, "Invalid order: NULL. Skip order."); + continue; + } if (l_order->node_addr.uint64 == g_node_addr.uint64 && l_order->srv_uid.uint64 == a_srv->uid.uint64) { l_err_code = 0; diff --git a/modules/service/xchange/dap_chain_net_srv_xchange.c b/modules/service/xchange/dap_chain_net_srv_xchange.c index 1dca52acb8..6f508b2a74 100644 --- a/modules/service/xchange/dap_chain_net_srv_xchange.c +++ b/modules/service/xchange/dap_chain_net_srv_xchange.c @@ -1110,7 +1110,6 @@ static int s_cli_srv_xchange_order(int a_argc, char **a_argv, int a_arg_index, v dap_chain_wallet_close(l_wallet); return -1; } - l_price->wallet_str = dap_strdup(l_wallet_str); dap_stpcpy(l_price->token_sell, l_token_sell_str); l_price->net = l_net; dap_stpcpy(l_price->token_buy, l_token_buy_str); @@ -1121,7 +1120,6 @@ static int s_cli_srv_xchange_order(int a_argc, char **a_argv, int a_arg_index, v dap_chain_datum_tx_t *l_tx = s_xchange_tx_create_request(l_price, l_wallet); if (!l_tx) { dap_cli_server_cmd_set_reply_text(a_str_reply, "%s\nCan't compose the conditional transaction", l_sign_str); - DAP_DELETE(l_price->wallet_str); DAP_DELETE(l_price); dap_chain_wallet_close(l_wallet); return -14; @@ -1131,7 +1129,6 @@ static int s_cli_srv_xchange_order(int a_argc, char **a_argv, int a_arg_index, v char* l_ret = NULL; if(!(l_ret = s_xchange_tx_put(l_tx, l_net))) { dap_cli_server_cmd_set_reply_text(a_str_reply, "%s\nCan't put transaction to mempool", l_sign_str); - DAP_DELETE(l_price->wallet_str); DAP_DELETE(l_price); return -15; } diff --git a/modules/service/xchange/include/dap_chain_net_srv_xchange.h b/modules/service/xchange/include/dap_chain_net_srv_xchange.h index 1d8ac20c69..8a210f87af 100644 --- a/modules/service/xchange/include/dap_chain_net_srv_xchange.h +++ b/modules/service/xchange/include/dap_chain_net_srv_xchange.h @@ -31,7 +31,6 @@ #define GROUP_LOCAL_XCHANGE "local.xchange" typedef struct dap_chain_net_srv_xchange_price { - char *wallet_str; char token_sell[DAP_CHAIN_TICKER_SIZE_MAX]; uint256_t datoshi_sell; dap_chain_net_t *net; -- GitLab