From 5a9e2e407073b8faed55dff8a4c3f66ee6980f6c Mon Sep 17 00:00:00 2001 From: Tony Jiang Date: Sun, 27 Nov 2022 22:36:56 +0800 Subject: [PATCH] fix to realloc memory if any queued data should be copied into new buffer #1303 Signed-off-by: Tony Jiang --- src/SocketBuffer.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/SocketBuffer.c b/src/SocketBuffer.c index 42eff81..39233ce 100644 --- a/src/SocketBuffer.c +++ b/src/SocketBuffer.c @@ -193,12 +193,18 @@ char* SocketBuffer_getQueuedData(SOCKET socket, size_t bytes, size_t* actual_len if (queue->datalen > 0) { void* newmem = malloc(bytes); - - free(queue->buf); - queue->buf = newmem; - if (!newmem) + if (newmem) + { + memcpy(newmem, queue->buf, queue->datalen); + free(queue->buf); + queue->buf = newmem; + } + else + { + free(queue->buf); + queue->buf = NULL; goto exit; - memcpy(newmem, queue->buf, queue->datalen); + } } else queue->buf = realloc(queue->buf, bytes); -- GitLab