diff --git a/modules/channel/chain/dap_stream_ch_chain.c b/modules/channel/chain/dap_stream_ch_chain.c index be7b4e66c1ca411353de65f628fe9829be625b3c..7f93f8111a2ece71cf4d45ca96c086a3f1399d6a 100644 --- a/modules/channel/chain/dap_stream_ch_chain.c +++ b/modules/channel/chain/dap_stream_ch_chain.c @@ -334,7 +334,9 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch, void* a_arg) if(l_chain) { // Expect atom element in if(l_chain_pkt_data_size > 0) { - if(l_chain->callback_atom_add(l_chain, l_chain_pkt->data) == 0 && + dap_chain_atom_ptr_t l_atom_copy = DAP_CALLOC(1, l_chain_pkt_data_size); + memcpy(l_atom_copy, l_chain_pkt->data, l_chain_pkt_data_size); + if(l_chain->callback_atom_add(l_chain, l_atom_copy) == 0 && dap_chain_has_file_store(l_chain)) { // append to file dap_chain_cell_id_t l_cell_id;