diff --git a/modules/net/srv/dap_chain_net_srv.c b/modules/net/srv/dap_chain_net_srv.c index a8b7d359f67a776e4e9d73f7d63dcc38a8a75c13..be4dc5d5c7db959bbf037181267497274b9cf6d6 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 1dca52acb800f8eb6a43637acfe6156478bff9a2..6f508b2a745aa0fb6c069e23bd551d75e3c7e8f6 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 1d8ac20c694eb2f847b2ec197c8b25d8eedb3369..8a210f87af47adaa81865ff26c58c22d3c632bd4 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;