summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--external/expat/UnpackedTarball_expat.mk1
-rw-r--r--external/expat/ubsan.patch.011
2 files changed, 12 insertions, 0 deletions
diff --git a/external/expat/UnpackedTarball_expat.mk b/external/expat/UnpackedTarball_expat.mk
index 5d4f41f6d147..96f4e3ec8732 100644
--- a/external/expat/UnpackedTarball_expat.mk
+++ b/external/expat/UnpackedTarball_expat.mk
@@ -15,6 +15,7 @@ $(eval $(call gb_UnpackedTarball_update_autoconf_configs,expat,conftools))
$(eval $(call gb_UnpackedTarball_add_patches,expat,\
external/expat/expat-winapi.patch \
+ external/expat/ubsan.patch.0 \
))
# This is a bit hackish.
diff --git a/external/expat/ubsan.patch.0 b/external/expat/ubsan.patch.0
new file mode 100644
index 000000000000..8317f922df88
--- /dev/null
+++ b/external/expat/ubsan.patch.0
@@ -0,0 +1,11 @@
+--- lib/xmlparse.c
++++ lib/xmlparse.c
+@@ -6485,7 +6485,7 @@
+ static void FASTCALL
+ hashTableIterInit(HASH_TABLE_ITER *iter, const HASH_TABLE *table) {
+ iter->p = table->v;
+- iter->end = iter->p + table->size;
++ iter->end = table->size == 0 ? iter->p : iter->p + table->size;
+ }
+
+ static NAMED *FASTCALL