Explorar o código

Fixed schannel index out of range in certain circumstances.

Miku AuahDark %!s(int64=3) %!d(string=hai) anos
pai
achega
dff11a4a6c
Modificáronse 1 ficheiros con 6 adicións e 2 borrados
  1. 6 2
      src/windows/SChannelConnection.cpp

+ 6 - 2
src/windows/SChannelConnection.cpp

@@ -55,8 +55,12 @@ static size_t dequeue(std::vector<char> &buffer, char *data, size_t size)
 	size_t remaining = buffer.size() - size;
 
 	memcpy(data, &buffer[0], size);
-	memmove(&buffer[0], &buffer[size], remaining);
-	buffer.resize(remaining);
+
+	if (remaining > 0)
+	{
+		memmove(&buffer[0], &buffer[size], remaining);
+		buffer.resize(remaining);
+	}
 
 	return size;
 }