[Libreoffice-commits] core.git: external/libxml2

Stephan Bergmann (via logerrit) logerrit at kemper.freedesktop.org
Tue Oct 22 05:20:27 UTC 2019


 external/libxml2/UnpackedTarball_libxml2.mk |    1 +
 external/libxml2/ubsan.patch.0              |   11 +++++++++++
 2 files changed, 12 insertions(+)

New commits:
commit fcb2d8a87ad696f7f2fe069f0ed68a88803e1b54
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Mon Oct 21 23:13:17 2019 +0200
Commit:     Stephan Bergmann <sbergman at redhat.com>
CommitDate: Tue Oct 22 07:19:45 2019 +0200

    external/libxml2: Avoid UBSan nullptr-with-offset
    
    ...(new with Clang 10 trunk), where adding even an offset of 0 to a null pointer
    is UB in C.  Seen when building UIConfig_modules/schart:
    
    > [UIL] chart2/uiconfig/ui/3dviewdialog
    > xpath.c:14532:5: runtime error: applying zero offset to null pointer
    >  #0 in xmlXPathTryStreamCompile at workdir/UnpackedTarball/libxml2/xpath.c:14532:5
    >  #1 in xmlXPathCtxtCompile__internal_alias at workdir/UnpackedTarball/libxml2/xpath.c:14634:12
    >  #2 in xsltXPathCompileFlags at workdir/UnpackedTarball/libxslt/libxslt/xsltutils.c:2323:11
    >  #3 in xsltValueOfComp at workdir/UnpackedTarball/libxslt/libxslt/preproc.c:1258:18
    >  #4 in xsltStylePreCompute at workdir/UnpackedTarball/libxslt/libxslt/preproc.c:2225:6
    >  #5 in xsltParseTemplateContent at workdir/UnpackedTarball/libxslt/libxslt/xslt.c:4916:13
    >  #6 in xsltParseStylesheetTemplate at workdir/UnpackedTarball/libxslt/libxslt/xslt.c:5467:5
    >  #7 in xsltParseStylesheetTop at workdir/UnpackedTarball/libxslt/libxslt/xslt.c:6205:6
    >  #8 in xsltParseStylesheetProcess at workdir/UnpackedTarball/libxslt/libxslt/xslt.c:6461:2
    >  #9 in xsltParseStylesheetImportedDoc at workdir/UnpackedTarball/libxslt/libxslt/xslt.c:6675:9
    >  #10 in xsltParseStylesheetDoc at workdir/UnpackedTarball/libxslt/libxslt/xslt.c:6714:11
    >  #11 in main at workdir/UnpackedTarball/libxslt/xsltproc/xsltproc.c:888:9
    
    Change-Id: I016ca8d24315385bcfeafca56dda44d9be10f517
    Reviewed-on: https://gerrit.libreoffice.org/81285
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/external/libxml2/UnpackedTarball_libxml2.mk b/external/libxml2/UnpackedTarball_libxml2.mk
index 00398f16af56..3194f1e08e75 100644
--- a/external/libxml2/UnpackedTarball_libxml2.mk
+++ b/external/libxml2/UnpackedTarball_libxml2.mk
@@ -19,6 +19,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,libxml2,\
 	external/libxml2/libxml2-vc10.patch \
 	$(if $(filter ANDROID,$(OS)),external/libxml2/libxml2-android.patch) \
 	external/libxml2/libxml2-icu.patch.0 \
+	external/libxml2/ubsan.patch.0 \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libxml2/ubsan.patch.0 b/external/libxml2/ubsan.patch.0
new file mode 100644
index 000000000000..234f66baddc2
--- /dev/null
+++ b/external/libxml2/ubsan.patch.0
@@ -0,0 +1,11 @@
+--- xpath.c
++++ xpath.c
+@@ -14529,7 +14529,7 @@
+ 	}
+ 
+ 	stream = xmlPatterncompile(str, dict, XML_PATTERN_XPATH,
+-			&namespaces[0]);
++			namespaces == NULL ? NULL : &namespaces[0]);
+ 	if (namespaces != NULL) {
+ 	    xmlFree((xmlChar **)namespaces);
+ 	}


More information about the Libreoffice-commits mailing list