提交 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
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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册