From 82c3483b2de5ce197e5a7f7ebaf37139518ea261 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Fri, 24 Nov 2017 11:54:34 +0000 Subject: ubsan: pixman.c:347:10: runtime error: left shift of negative value -1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit with fdo64256-1.docx Change-Id: I27dc510b1f178d535bc6b2dace34cdae1d9cd62a Reviewed-on: https://gerrit.libreoffice.org/45222 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- external/cairo/UnpackedTarball_pixman.mk | 1 + external/cairo/pixman/pixman-ubsan.patch | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 external/cairo/pixman/pixman-ubsan.patch (limited to 'external/cairo') 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) -- cgit