summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--user/pixman/APKBUILD14
-rw-r--r--user/pixman/stacksize-reduction.patch17
2 files changed, 22 insertions, 9 deletions
diff --git a/user/pixman/APKBUILD b/user/pixman/APKBUILD
index 50ff4f981..b8bf2ba58 100644
--- a/user/pixman/APKBUILD
+++ b/user/pixman/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=pixman
-pkgver=0.38.4
-pkgrel=1
+pkgver=0.42.2
+pkgrel=0
pkgdesc="Low-level pixel manipulation library"
url="https://www.X.Org/"
arch="all"
@@ -9,10 +9,14 @@ license="MIT"
depends=""
makedepends="libpng-dev perl linux-headers"
subpackages="$pkgname-dev $pkgname-dbg"
-source="https://www.X.Org/releases/individual/lib/$pkgname-$pkgver.tar.bz2
+source="https://www.X.Org/releases/individual/lib/$pkgname-$pkgver.tar.xz
stacksize-reduction.patch
"
+# secfixes:
+# 0.42.2-r0:
+# - CVE-2022-44638
+
build() {
# Static is needed by qemu
@@ -34,5 +38,5 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="0683b7f67caa0881b23188b7e6f8487c7e0a1257a912686616b7d862efd5a9efdb51641c81ec54905a6f6b1029d796ca4e25c0909db28fc29fa3617bf09f9cf9 pixman-0.38.4.tar.bz2
-3d75e7328e6eaaa6e8f4defa4402db815764369f94b81be38fba07933267fe24b03b591dd4c3f3544cb090650153728bfbdd81a91acaf19524c3d08f61427f63 stacksize-reduction.patch"
+sha512sums="3476e2676e66756b1af61b1e532cd80c985c191fb7956eb01702b419726cce99e79163b7f287f74f66414680e7396d13c3fee525cd663f12b6ac4877070ff4e8 pixman-0.42.2.tar.xz
+0dc8cf94690381d32c1bebf33925475891888f19403ebe2e0dc82841ddba3689284fd88d68d751cbf8179aa968b5238455a21047a3c60a0dd6aeac615020ebdd stacksize-reduction.patch"
diff --git a/user/pixman/stacksize-reduction.patch b/user/pixman/stacksize-reduction.patch
index 38da9b3ff..ef90847ac 100644
--- a/user/pixman/stacksize-reduction.patch
+++ b/user/pixman/stacksize-reduction.patch
@@ -2,8 +2,8 @@ Reduce the stack footprint of pixman's function
general_composite_rect() which allocates a large buffer
`stack_scanline_buffer`. Make it `static __thread` instead.
---- a/pixman/pixman-general.c 2015-12-27 21:37:37.000000000 +0100
-+++ b/pixman/pixman-general.c 2016-05-05 12:24:47.346661080 +0200
+--- pixman-0.42.2/pixman/pixman-general.c.old 2022-02-01 14:51:25.000000000 -0600
++++ pixman-0.42.2/pixman/pixman-general.c 2022-11-20 22:12:40.313477382 -0600
@@ -128,8 +128,8 @@
pixman_composite_info_t *info)
{
@@ -15,7 +15,7 @@ general_composite_rect() which allocates a large buffer
uint8_t *src_buffer, *mask_buffer, *dest_buffer;
pixman_iter_t src_iter, mask_iter, dest_iter;
pixman_combine_32_func_t compose;
-@@ -158,7 +158,7 @@
+@@ -159,7 +159,7 @@
if (width <= 0 || _pixman_multiply_overflows_int (width, Bpp * 3))
return;
@@ -24,7 +24,16 @@ general_composite_rect() which allocates a large buffer
{
scanline_buffer = pixman_malloc_ab_plus_c (width, Bpp * 3, 15 * 3);
-@@ -232,7 +232,7 @@
+@@ -170,7 +170,7 @@
+ }
+ else
+ {
+- memset (stack_scanline_buffer, 0, sizeof (stack_scanline_buffer));
++ memset (static_scanline_buffer, 0, sizeof (static_scanline_buffer));
+ }
+
+ src_buffer = ALIGN (scanline_buffer);
+@@ -239,7 +239,7 @@
if (dest_iter.fini)
dest_iter.fini (&dest_iter);