diff --git a/dap-sdk/net/core/dap_events_socket.c b/dap-sdk/net/core/dap_events_socket.c
index ca6769a0b385d94c90535bba528b199c475408db..be385111db3b9fb772d7b27a7458725274ccd922 100644
--- a/dap-sdk/net/core/dap_events_socket.c
+++ b/dap-sdk/net/core/dap_events_socket.c
@@ -433,12 +433,9 @@ void dap_events_socket_shrink_buf_in(dap_events_socket_t * cl, size_t shrink_siz
         return;
     }else if(cl->buf_in_size>shrink_size){
         size_t buf_size=cl->buf_in_size-shrink_size;
-        void * buf = malloc(buf_size);
-        memcpy(buf,cl->buf_in+ shrink_size,buf_size );
-        memcpy(cl->buf_in,buf,buf_size);
+        uint8_t* tmp = cl->buf_in + shrink_size;
+        memmove(cl->buf_in,tmp,buf_size);
         cl->buf_in_size=buf_size;
-        if (buf)
-            free(buf);
     }else{
         //log_it(WARNING,"Shrinking size of input buffer on amount bigger than actual buffer's size");
         cl->buf_in_size=0;