pixman: upgrade to release 0.42.2

Fixes CVE-2022-44638

Remove Wincompatible-function-pointer-types.patch.0, fixed upstream.

Change-Id: If6589a701a252f71da145264ee3a6f0e333492ae
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143423
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
This commit is contained in:
Taichi Haradaguchi 2022-11-28 21:04:45 +09:00 committed by Michael Stahl
parent ce31e09a6d
commit 93a69d37c1
6 changed files with 26 additions and 43 deletions

View file

@ -202,8 +202,8 @@ export PAGEMAKER_SHA256SUM := 66adacd705a7d19895e08eac46d1e851332adf2e736c566bef
export PAGEMAKER_TARBALL := libpagemaker-0.0.4.tar.xz
export PDFIUM_SHA256SUM := 7db59b1e91f2bc0ab4c5e19d1a4f881e6a47dbb0d3b7e980a7358225b12a0f35
export PDFIUM_TARBALL := pdfium-5408.tar.bz2
export PIXMAN_SHA256SUM := 6d200dec3740d9ec4ec8d1180e25779c00bc749f94278c8b9021f5534db223fc
export PIXMAN_TARBALL := pixman-0.40.0.tar.gz
export PIXMAN_SHA256SUM := ea1480efada2fd948bc75366f7c349e1c96d3297d09a3fe62626e38e234a625e
export PIXMAN_TARBALL := pixman-0.42.2.tar.gz
export LIBPNG_SHA256SUM := b3683e8b8111ebf6f1ac004ebb6b0c975cd310ec469d98364388e9cedbfa68be
export LIBPNG_TARBALL := libpng-1.6.38.tar.xz
export LIBTIFF_SHA256SUM := 49307b510048ccc7bc40f2cba6e8439182fe6e654057c1a1683139bf2ecb1dc1

View file

@ -12,7 +12,7 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,pixman,pixman))
$(eval $(call gb_ExternalPackage_use_external_project,pixman,pixman))
ifneq ($(DISABLE_DYNLOADING),TRUE)
$(eval $(call gb_ExternalPackage_add_file,pixman,$(LIBO_LIB_FOLDER)/libpixman-1.so.0,pixman/.libs/libpixman-1.so.0.40.0))
$(eval $(call gb_ExternalPackage_add_file,pixman,$(LIBO_LIB_FOLDER)/libpixman-1.so.0,pixman/.libs/libpixman-1.so.0.42.2))
endif
# vim: set noet sw=4 ts=4:

View file

@ -14,7 +14,6 @@ $(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-ubsan.patch \
external/cairo/pixman/Wincompatible-function-pointer-types.patch.0 \
))
# vim: set noet sw=4 ts=4:

View file

@ -1,19 +0,0 @@
--- pixman/pixman-bits-image.c
+++ pixman/pixman-bits-image.c
@@ -1851,14 +1851,14 @@
iter->y++;
}
-static const float
+static float
dither_factor_blue_noise_64 (int x, int y)
{
float m = dither_blue_noise_64x64[((y & 0x3f) << 6) | (x & 0x3f)];
return m * (1. / 4096.f) + (1. / 8192.f);
}
-static const float
+static float
dither_factor_bayer_8 (int x, int y)
{
uint32_t m;

View file

@ -1,6 +1,6 @@
--- misc/pixman-0.24.4/Makefile.in 2011-11-06 22:11:25.000000000 +0100
+++ misc/build/pixman-0.24.4/Makefile.in 2011-12-16 09:06:45.317211035 +0100
@@ -272,7 +272,7 @@
@@ -385,7 +385,7 @@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@

View file

@ -1,6 +1,6 @@
diff -ru pixman-0.40.0.orig/pixman/pixman-bits-image.c pixman-0.40.0/pixman/pixman-bits-image.c
--- misc/pixman-0.40.0.orig/pixman/pixman-bits-image.c 2021-08-29 20:02:33.714515016 +0100
+++ misc/build/pixman-0.40.0/pixman/pixman-bits-image.c 2021-08-29 20:05:43.304930185 +0100
diff -ru pixman-0.42.2.orig/pixman/pixman-bits-image.c pixman-0.42.2/pixman/pixman-bits-image.c
--- misc/pixman-0.42.2.orig/pixman/pixman-bits-image.c 2022-11-03 02:25:48.000000000 +0900
+++ misc/build/pixman-0.42.2/pixman/pixman-bits-image.c 2022-11-28 21:35:25.896969126 +0900
@@ -351,8 +351,8 @@
* positioned relative to a particular phase (and not relative to whatever
* exact fraction we happen to get here).
@ -12,9 +12,9 @@ diff -ru pixman-0.40.0.orig/pixman/pixman-bits-image.c pixman-0.40.0/pixman/pixm
px = (x & 0xffff) >> x_phase_shift;
py = (y & 0xffff) >> y_phase_shift;
diff -ru pixman-0.40.0.orig/pixman/pixman-combine32.c pixman-0.40.0/pixman/pixman-combine32.c
--- misc/pixman-0.40.0.orig/pixman/pixman-combine32.c 2021-08-29 20:02:33.715514970 +0100
+++ misc/build/pixman-0.40.0/pixman/pixman-combine32.c 2021-08-29 20:05:43.304930185 +0100
diff -ru pixman-0.42.2.orig/pixman/pixman-combine32.c pixman-0.42.2/pixman/pixman-combine32.c
--- misc/pixman-0.42.2.orig/pixman/pixman-combine32.c 2022-02-02 05:51:25.000000000 +0900
+++ misc/build/pixman-0.42.2/pixman/pixman-combine32.c 2022-11-28 21:38:48.226968594 +0900
@@ -589,7 +589,7 @@
rg = DIV_ONE_UN8 (rg); \
rb = DIV_ONE_UN8 (rb); \
@ -24,9 +24,9 @@ diff -ru pixman-0.40.0.orig/pixman/pixman-combine32.c pixman-0.40.0/pixman/pixma
} \
} \
\
diff -ru pixman-0.40.0.orig/pixman/pixman-fast-path.c pixman-0.40.0/pixman/pixman-fast-path.c
--- misc/pixman-0.40.0.orig/pixman/pixman-fast-path.c 2021-08-29 20:02:33.716514925 +0100
+++ misc/build/pixman-0.40.0/pixman/pixman-fast-path.c 2021-08-29 20:05:43.303930231 +0100
diff -ru pixman-0.42.2.orig/pixman/pixman-fast-path.c pixman-0.42.2/pixman/pixman-fast-path.c
--- misc/pixman-0.42.2.orig/pixman/pixman-fast-path.c 2022-10-18 02:47:42.000000000 +0900
+++ misc/build/pixman-0.42.2/pixman/pixman-fast-path.c 2022-11-28 21:53:12.596963317 +0900
@@ -2758,8 +2758,8 @@
* positioned relative to a particular phase (and not relative to whatever
* exact fraction we happen to get here).
@ -38,19 +38,22 @@ diff -ru pixman-0.40.0.orig/pixman/pixman-fast-path.c pixman-0.40.0/pixman/pixma
px = (x & 0xffff) >> x_phase_shift;
py = (y & 0xffff) >> y_phase_shift;
@@ -2836,7 +2836,7 @@
sgtot = CLIP (sgtot, 0, 0xff);
@@ -2837,9 +2837,9 @@
sbtot = CLIP (sbtot, 0, 0xff);
#ifdef WORDS_BIGENDIAN
- buffer[k] = (satot << 0) | (srtot << 8) | (sgtot << 16) | (sbtot << 24);
+ buffer[k] = (satot << 0) | (srtot << 8) | (sgtot << 16) | ((uint32_t)sbtot << 24);
#else
- buffer[k] = (satot << 24) | (srtot << 16) | (sgtot << 8) | (sbtot << 0);
+ buffer[k] = ((uint32_t)satot << 24) | (srtot << 16) | (sgtot << 8) | (sbtot << 0);
#endif
next:
vx += ux;
diff -ru pixman-0.40.0.orig/pixman/pixman-sse2.c pixman-0.40.0/pixman/pixman-sse2.c
--- misc/pixman-0.40.0.orig/pixman/pixman-sse2.c 2021-08-29 20:02:33.716514925 +0100
+++ misc/build/pixman-0.40.0/pixman/pixman-sse2.c 2021-08-29 20:05:43.306930095 +0100
@@ -3344,7 +3344,7 @@
diff -ru pixman-0.42.2.orig/pixman/pixman-sse2.c pixman-0.42.2/pixman/pixman-sse2.c
--- misc/pixman-0.42.2/pixman/pixman-sse2.c 2022-02-02 05:51:25.000000000 +0900
+++ misc/build/pixman-0.42.2/pixman/pixman-sse2.c 2022-11-28 22:11:19.276969466 +0900
@@ -3345,7 +3345,7 @@
b = filler & 0xff;
w = (b << 8) | b;
@ -59,9 +62,9 @@ diff -ru pixman-0.40.0.orig/pixman/pixman-sse2.c pixman-0.40.0/pixman/pixman-sse
}
else if (bpp == 16)
{
diff -ru pixman-0.40.0.orig/pixman/pixman-utils.c pixman-0.40.0/pixman/pixman-utils.c
--- misc/pixman-0.40.0.orig/pixman/pixman-utils.c 2021-08-29 20:02:33.715514970 +0100
+++ misc/build/pixman-0.40.0/pixman/pixman-utils.c 2021-08-29 20:05:43.306930095 +0100
diff -ru pixman-0.42.2.orig/pixman/pixman-utils.c pixman-0.42.2/pixman/pixman-utils.c
--- misc/pixman-0.42.2.orig/pixman/pixman-utils.c 2022-02-02 05:51:25.000000000 +0900
+++ misc/build/pixman-0.42.2/pixman/pixman-utils.c 2022-11-28 21:55:44.196964912 +0900
@@ -213,7 +213,7 @@
g = float_to_unorm (src[i].g, 8);
b = float_to_unorm (src[i].b, 8);