Преглед изворни кода

LibWeb: Account for header size when reading MessagePort message payload

Previously, the fact that this wasn't accounted for could lead to a
crash when large messages were received.
Tim Ledbetter пре 1 година
родитељ
комит
34e465a67e
1 измењених фајлова са 1 додато и 1 уклоњено
  1. 1 1
      Userland/Libraries/LibWeb/HTML/MessagePort.cpp

+ 1 - 1
Userland/Libraries/LibWeb/HTML/MessagePort.cpp

@@ -279,7 +279,7 @@ ErrorOr<MessagePort::ParseDecision> MessagePort::parse_message()
         [[fallthrough]];
     }
     case SocketState::Data: {
-        if (num_bytes_ready < m_socket_incoming_message_size)
+        if (num_bytes_ready < HEADER_SIZE + m_socket_incoming_message_size)
             return ParseDecision::NotEnoughData;
 
         auto payload = m_buffered_data.span().slice(HEADER_SIZE, m_socket_incoming_message_size);