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

Caolán McNamara caolanm at redhat.com
Fri Nov 24 12:17:18 UTC 2017


 external/cairo/UnpackedTarball_pixman.mk |    1 +
 external/cairo/pixman/pixman-ubsan.patch |   11 +++++++++++
 2 files changed, 12 insertions(+)

New commits:
commit 82c3483b2de5ce197e5a7f7ebaf37139518ea261
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Fri Nov 24 11:54:34 2017 +0000

    ubsan: pixman.c:347:10: runtime error: left shift of negative value -1
    
    with fdo64256-1.docx
    
    Change-Id: I27dc510b1f178d535bc6b2dace34cdae1d9cd62a
    Reviewed-on: https://gerrit.libreoffice.org/45222
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/external/cairo/UnpackedTarball_pixman.mk b/external/cairo/UnpackedTarball_pixman.mk
index 6669a8f8be66..cc3dbd11dcc0 100644
--- a/external/cairo/UnpackedTarball_pixman.mk
+++ b/external/cairo/UnpackedTarball_pixman.mk
@@ -14,6 +14,7 @@ $(eval $(call gb_UnpackedTarball_set_tarball,pixman,$(PIXMAN_TARBALL),,cairo))
 $(eval $(call gb_UnpackedTarball_add_patches,pixman,\
 	external/cairo/pixman/pixman-0.24.4.patch \
 	external/cairo/pixman/pixman-ofz4372.patch \
+	external/cairo/pixman/pixman-ubsan.patch \
 ))
 
 ifeq ($(OS),WNT)
diff --git a/external/cairo/pixman/pixman-ubsan.patch b/external/cairo/pixman/pixman-ubsan.patch
new file mode 100644
index 000000000000..339a26719947
--- /dev/null
+++ b/external/cairo/pixman/pixman-ubsan.patch
@@ -0,0 +1,11 @@
+--- misc/pixman/pixman/pixman.h
++++ misc/build/pixman/pixman/pixman.h
+@@ -127,7 +127,7 @@
+ #define pixman_fixed_1_minus_e		(pixman_fixed_1 - pixman_fixed_e)
+ #define pixman_fixed_minus_1		(pixman_int_to_fixed(-1))
+ #define pixman_fixed_to_int(f)		((int) ((f) >> 16))
+-#define pixman_int_to_fixed(i)		((pixman_fixed_t) ((i) << 16))
++#define pixman_int_to_fixed(i)		((pixman_fixed_t) ((i) * (1 << 16)))
+ #define pixman_fixed_to_double(f)	(double) ((f) / (double) pixman_fixed_1)
+ #define pixman_double_to_fixed(d)	((pixman_fixed_t) ((d) * 65536.0))
+ #define pixman_fixed_frac(f)		((f) & pixman_fixed_1_minus_e)


More information about the Libreoffice-commits mailing list