소스 검색

LibWeb: Reject improperly encoded XML documents as not well-formed

Idan Horowitz 1 년 전
부모
커밋
9677d8eeac
1개의 변경된 파일3개의 추가작업 그리고 0개의 파일을 삭제
  1. 3 0
      Userland/Libraries/LibWeb/DOM/DocumentLoading.cpp

+ 3 - 0
Userland/Libraries/LibWeb/DOM/DocumentLoading.cpp

@@ -159,6 +159,9 @@ bool build_xml_document(DOM::Document& document, ByteBuffer const& data, Optiona
         decoder = TextCodec::decoder_for(encoding);
     }
     VERIFY(decoder.has_value());
+    // Well-formed XML documents contain only properly encoded characters
+    if (!decoder->validate(data))
+        return false;
     auto source = decoder->to_utf8(data).release_value_but_fixme_should_propagate_errors();
     XML::Parser parser(source, { .resolve_external_resource = resolve_xml_resource });
     XMLDocumentBuilder builder { document };