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);