From 41d1851616ab440ab883d4067eb33acb70b8ee07 Mon Sep 17 00:00:00 2001 From: "Dmitriy A. Gerasimov" <dmitriy.gerasimov@demlabs.net> Date: Sat, 28 Nov 2020 14:50:49 +0700 Subject: [PATCH] [*] Check for null unpacked data --- CMakeLists.txt | 2 +- modules/channel/chain/dap_stream_ch_chain.c | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1773cbe222..f6e662eb8c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ project(cellframe-sdk C) cmake_minimum_required(VERSION 2.8) set(CMAKE_C_STANDARD 11) -set(CELLFRAME_SDK_NATIVE_VERSION "2.6-64") +set(CELLFRAME_SDK_NATIVE_VERSION "2.6-65") add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"") set(DAPSDK_MODULES "") diff --git a/modules/channel/chain/dap_stream_ch_chain.c b/modules/channel/chain/dap_stream_ch_chain.c index 14f8cc211c..dafe084527 100644 --- a/modules/channel/chain/dap_stream_ch_chain.c +++ b/modules/channel/chain/dap_stream_ch_chain.c @@ -352,8 +352,14 @@ bool s_gdb_pkt_callback(dap_proc_thread_t *a_thread, void *a_arg) size_t l_data_obj_count = 0; // deserialize data & Parse data from dap_db_log_pack() dap_store_obj_t *l_store_obj = dap_db_log_unpack(l_pkt_copy->pkt_data, l_pkt_copy->pkt_data_size, &l_data_obj_count); - if (s_debug_chain_sync) - log_it(L_INFO, "In: l_data_obj_count = %d", l_data_obj_count ); + if (s_debug_chain_sync){ + if (l_data_obj_count) + log_it(L_INFO, "In: l_data_obj_count = %d", l_data_obj_count ); + else if (l_pkt_copy->pkt_data) + log_it(L_WARNING, "In: No data objs after unpack", l_data_obj_count ); + else + log_it(L_WARNING, "In: packet in list with NULL data"); + } for(size_t i = 0; i < l_data_obj_count; i++) { // timestamp for exist obj @@ -439,8 +445,10 @@ bool s_gdb_pkt_callback(dap_proc_thread_t *a_thread, void *a_arg) } if(l_store_obj) dap_store_obj_free(l_store_obj, l_data_obj_count); - DAP_DELETE(l_pkt_copy); - DAP_DELETE(l_pkt_copy_list); + if (l_pkt_copy) + DAP_DELETE(l_pkt_copy); + if (l_pkt_copy_list) + DAP_DELETE(l_pkt_copy_list); } else { log_it(L_WARNING, "In proc thread got GDB stream ch packet with zero data"); } -- GitLab