unoxml/source/rdf/librdf_repository.cxx |    5 +++++
 1 file changed, 5 insertions(+)

New commits:
commit 4995811d0d9cf74fecf9b733b0a0f04fb15e372e
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Fri Apr 4 17:33:10 2025 +0200
Commit:     Michael Stahl <michael.st...@allotropia.de>
CommitDate: Fri Apr 4 19:53:59 2025 +0200

    tdf#166040 unordf: fix assert when importing empty stream
    
    rdf_parser.c:592: (librdf_parser_parse_counted_string_as_stream) assertion 
failed: string length is not greater than zero
    
    Check for this in librdf_Repository::importGraph()
    
    Change-Id: I27e180fd2fc09c5f43b7fdfcc7faa184bdc0808a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183721
    Reviewed-by: Michael Stahl <michael.st...@allotropia.de>
    Tested-by: Jenkins

diff --git a/unoxml/source/rdf/librdf_repository.cxx 
b/unoxml/source/rdf/librdf_repository.cxx
index 09b4a9cac17a..aa1cf229b364 100644
--- a/unoxml/source/rdf/librdf_repository.cxx
+++ b/unoxml/source/rdf/librdf_repository.cxx
@@ -999,6 +999,11 @@ librdf_Repository::importGraph(::sal_Int16 i_Format,
     // exceptions are propagated
     i_xInStream->readBytes( buf, static_cast<sal_Int32>( sz ) );
 
+    if (buf.getLength() == 0) {
+        throw rdf::ParseException(
+            u"librdf_Repository::importGraph: stream is empty"_ustr, *this);
+    }
+
     std::scoped_lock g(m_aMutex); // don't call i_x* with mutex locked
 
     if (m_NamedGraphs.find(contextU) != m_NamedGraphs.end()) {

Reply via email to