소스 검색

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]];
         [[fallthrough]];
     }
     }
     case SocketState::Data: {
     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;
             return ParseDecision::NotEnoughData;
 
 
         auto payload = m_buffered_data.span().slice(HEADER_SIZE, m_socket_incoming_message_size);
         auto payload = m_buffered_data.span().slice(HEADER_SIZE, m_socket_incoming_message_size);