提交 5a9e2e40 编写于 作者: T Tony Jiang 提交者: Ian Craggs

fix to realloc memory if any queued data should be copied into new buffer #1303

Signed-off-by: NTony Jiang <tony_jansan@aliyun.com>
上级 911488a9
...@@ -193,12 +193,18 @@ char* SocketBuffer_getQueuedData(SOCKET socket, size_t bytes, size_t* actual_len ...@@ -193,12 +193,18 @@ char* SocketBuffer_getQueuedData(SOCKET socket, size_t bytes, size_t* actual_len
if (queue->datalen > 0) if (queue->datalen > 0)
{ {
void* newmem = malloc(bytes); void* newmem = malloc(bytes);
if (newmem)
free(queue->buf); {
queue->buf = newmem; memcpy(newmem, queue->buf, queue->datalen);
if (!newmem) free(queue->buf);
queue->buf = newmem;
}
else
{
free(queue->buf);
queue->buf = NULL;
goto exit; goto exit;
memcpy(newmem, queue->buf, queue->datalen); }
} }
else else
queue->buf = realloc(queue->buf, bytes); queue->buf = realloc(queue->buf, bytes);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册