Ver código fonte

Fixed schannel index out of range in certain circumstances.

Miku AuahDark 3 anos atrás
pai
commit
dff11a4a6c
1 arquivos alterados com 6 adições e 2 exclusões
  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;
 }