summaryrefslogtreecommitdiff
path: root/external/libmwaw
diff options
context:
space:
mode:
Diffstat (limited to 'external/libmwaw')
-rw-r--r--external/libmwaw/UnpackedTarball_libmwaw.mk1
-rw-r--r--external/libmwaw/ubsan.patch.011
2 files changed, 12 insertions, 0 deletions
diff --git a/external/libmwaw/UnpackedTarball_libmwaw.mk b/external/libmwaw/UnpackedTarball_libmwaw.mk
index e37d82d33628..5338ce52c691 100644
--- a/external/libmwaw/UnpackedTarball_libmwaw.mk
+++ b/external/libmwaw/UnpackedTarball_libmwaw.mk
@@ -16,6 +16,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,libmwaw,1))
$(eval $(call gb_UnpackedTarball_add_patches,libmwaw,\
external/libmwaw/0001-ClarisWorks-AppleWorks-spreadsheet-do-not-remove-fir.patch \
external/libmwaw/0002-ClarisWors-AppleWorks-spreadsheet-Oops-correct-of-a-.patch \
+ external/libmwaw/ubsan.patch.0 \
))
# vim: set noet sw=4 ts=4:
diff --git a/external/libmwaw/ubsan.patch.0 b/external/libmwaw/ubsan.patch.0
new file mode 100644
index 000000000000..4a7f21093004
--- /dev/null
+++ b/external/libmwaw/ubsan.patch.0
@@ -0,0 +1,11 @@
+--- src/lib/WingzParser.cxx
++++ src/lib/WingzParser.cxx
+@@ -1120,7 +1120,7 @@
+ MWAWColor colors[4];
+ for (int i=0; i<4; ++i) { // font, back, unknown,font color
+ val=(int) input->readULong(4);
+- int col=((val>>16)&0xFF)|(val&0xFF00)|((val<<16)&0xFFFFFF);
++ int col=((val>>16)&0xFF)|(val&0xFF00)|((val&0xFF)<<16);
+ int high=(val>>24);
+ colors[i]=MWAWColor(uint32_t(col)|0xFF000000);
+ switch (i) {