diff --git a/dap-sdk/net/core/dap_events.c b/dap-sdk/net/core/dap_events.c index b591f081a82f4a808ae280607f55919e3935a1c8..45a366318c4e3013571da0bffafdf31003485870 100644 --- a/dap-sdk/net/core/dap_events.c +++ b/dap-sdk/net/core/dap_events.c @@ -421,7 +421,7 @@ static void *thread_worker_function(void *arg) pthread_mutex_lock(&cur->write_hold); cur->buf_out_size -= total_sent; if (cur->buf_out_size) { - memcpy(cur->buf_out, &cur->buf_out[total_sent], cur->buf_out_size); + memmove(cur->buf_out, &cur->buf_out[total_sent], cur->buf_out_size); } else { cur->flags &= ~DAP_SOCK_READY_TO_WRITE; } diff --git a/dap-sdk/net/stream/stream/dap_stream.c b/dap-sdk/net/stream/stream/dap_stream.c index d244dbafbad17375161d9a03e581ffbf4e0f588b..a5eef987c52b5aaea2d9c24d5d48f27cd0806383 100644 --- a/dap-sdk/net/stream/stream/dap_stream.c +++ b/dap-sdk/net/stream/stream/dap_stream.c @@ -771,8 +771,10 @@ void stream_proc_pkt_in(dap_stream_t * a_stream) { dap_stream_ch_pkt_t * l_ch_pkt = (dap_stream_ch_pkt_t *) a_stream->pkt_cache; - if(dap_stream_pkt_read(a_stream,l_pkt, l_ch_pkt, STREAM_BUF_SIZE_MAX)==0){ + if(dap_stream_pkt_read(a_stream,l_pkt, l_ch_pkt, sizeof(a_stream->pkt_cache))==0){ log_it(L_WARNING, "Input: can't decode packet size=%d",l_pkt_size); + DAP_DELETE(l_pkt); + return; } _detect_loose_packet(a_stream);