瀏覽代碼

windows: fix truncated body data returned from GET methods

slime 2 年之前
父節點
當前提交
6a6d6bd577
共有 1 個文件被更改,包括 6 次插入1 次删除
  1. 6 1
      src/windows/SChannelConnection.cpp

+ 6 - 1
src/windows/SChannelConnection.cpp

@@ -45,7 +45,8 @@ static void enqueue_prepend(std::vector<char> &buffer, char *data, size_t size)
 {
 	size_t oldSize = buffer.size();
 	buffer.resize(oldSize + size);
-	memmove(&buffer[size], &buffer[0], oldSize);
+	if (oldSize > 0)
+		memmove(&buffer[size], &buffer[0], oldSize);
 	memcpy(&buffer[0], data, size);
 }
 
@@ -61,6 +62,10 @@ static size_t dequeue(std::vector<char> &buffer, char *data, size_t size)
 		memmove(&buffer[0], &buffer[size], remaining);
 		buffer.resize(remaining);
 	}
+	else
+	{
+		buffer.resize(0);
+	}
 
 	return size;
 }