Compare commits
No commits in common. "c10s" and "c8" have entirely different histories.
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,2 +1 @@
|
|||||||
/pixman-0.*.tar.bz2
|
SOURCES/pixman-0.38.4.tar.bz2
|
||||||
/pixman-0.*.tar.xz
|
|
||||||
|
1
.pixman.metadata
Normal file
1
.pixman.metadata
Normal file
@ -0,0 +1 @@
|
|||||||
|
87e1abc91ac4e5dfcc275f744f1d0ec3277ee7cd SOURCES/pixman-0.38.4.tar.bz2
|
@ -1,34 +0,0 @@
|
|||||||
From 3a32506877f925f9c27f72558f7f07fdb3092fc2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Bill Roberts <bill.roberts@arm.com>
|
|
||||||
Date: Wed, 10 Jul 2024 12:18:02 -0500
|
|
||||||
Subject: [PATCH 1/2] arm: add include guards on header
|
|
||||||
|
|
||||||
Prevent double inclusion of header file.
|
|
||||||
|
|
||||||
Signed-off-by: Bill Roberts <bill.roberts@arm.com>
|
|
||||||
---
|
|
||||||
pixman/pixman-arm-asm.h | 4 ++++
|
|
||||||
1 file changed, 4 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/pixman/pixman-arm-asm.h b/pixman/pixman-arm-asm.h
|
|
||||||
index edf8e82..1fe40b3 100644
|
|
||||||
--- a/pixman/pixman-arm-asm.h
|
|
||||||
+++ b/pixman/pixman-arm-asm.h
|
|
||||||
@@ -25,6 +25,8 @@
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
+#ifndef PIXMAN_ARM_ASM_H
|
|
||||||
+#define PIXMAN_ARM_ASM_H
|
|
||||||
|
|
||||||
#include "pixman-config.h"
|
|
||||||
|
|
||||||
@@ -61,3 +63,5 @@
|
|
||||||
.endfunc
|
|
||||||
#endif
|
|
||||||
.endm
|
|
||||||
+
|
|
||||||
+#endif /* PIXMAN_ARM_ASM_H */
|
|
||||||
--
|
|
||||||
2.46.0
|
|
||||||
|
|
@ -1,280 +0,0 @@
|
|||||||
From 7ed0f8d04d56320b034f2e15ef7867c5724947e0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Bill Roberts <bill.roberts@arm.com>
|
|
||||||
Date: Thu, 18 Jul 2024 10:13:07 -0500
|
|
||||||
Subject: [PATCH 2/2] aarch64: support PAC and BTI
|
|
||||||
|
|
||||||
Enable Pointer Authentication Codes (PAC) and Branch Target
|
|
||||||
Identification (BTI) support for ARM 64 targets.
|
|
||||||
|
|
||||||
PAC works by signing the LR with either an A key or B key and verifying
|
|
||||||
the return address. There are quite a few instructions capable of doing
|
|
||||||
this, however, the Linux ARM ABI is to use hint compatible instructions
|
|
||||||
that can be safely NOP'd on older hardware and can be assembled and
|
|
||||||
linked with older binutils. This limits the instruction set to paciasp,
|
|
||||||
pacibsp, autiasp and autibsp. Instructions prefixed with pac are for
|
|
||||||
signing and instructions prefixed with aut are for signing. Both
|
|
||||||
instructions are then followed with an a or b to indicate which signing
|
|
||||||
key they are using. The keys can be controlled using
|
|
||||||
-mbranch-protection=pac-ret for the A key and
|
|
||||||
-mbranch-protection=pac-ret+b-key for the B key.
|
|
||||||
|
|
||||||
BTI works by marking all call and jump positions with bti c and bti
|
|
||||||
j instructions. If execution control transfers to an instruction other
|
|
||||||
than a BTI instruction, the execution is killed via SIGILL. Note that
|
|
||||||
to remove one instruction, the aforementioned pac instructions will
|
|
||||||
also work as a BTI landing pad for bti c usages.
|
|
||||||
|
|
||||||
For BTI to work, all object files linked for a unit of execution,
|
|
||||||
whether an executable or a library must have the GNU Notes section of
|
|
||||||
the ELF file marked to indicate BTI support. This is so loader/linkers
|
|
||||||
can apply the proper permission bits (PROT_BRI) on the memory region.
|
|
||||||
|
|
||||||
PAC can also be annotated in the GNU ELF notes section, but it's not
|
|
||||||
required for enablement, as interleaved PAC and non-pac code works as
|
|
||||||
expected since it's the callee that performs all the checking. The
|
|
||||||
linker follows the same rules as BTI for discarding the PAC flag from
|
|
||||||
the GNU Notes section.
|
|
||||||
|
|
||||||
Testing was done under the following CFLAGS and CXXFLAGS for all
|
|
||||||
combinations:
|
|
||||||
1. -mbranch-protection=none
|
|
||||||
2. -mbranch-protection=standard
|
|
||||||
3. -mbranch-protection=pac-ret
|
|
||||||
4. -mbranch-protection=pac-ret+b-key
|
|
||||||
5. -mbranch-protection=bti
|
|
||||||
|
|
||||||
Signed-off-by: Bill Roberts <bill.roberts@arm.com>
|
|
||||||
---
|
|
||||||
pixman/pixman-arm-asm.h | 43 ++++++++++++++++++++++++
|
|
||||||
pixman/pixman-arma64-neon-asm-bilinear.S | 1 +
|
|
||||||
pixman/pixman-arma64-neon-asm.S | 1 +
|
|
||||||
pixman/pixman-arma64-neon-asm.h | 32 +++++++++++++-----
|
|
||||||
4 files changed, 69 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/pixman/pixman-arm-asm.h b/pixman/pixman-arm-asm.h
|
|
||||||
index 1fe40b3..c13837c 100644
|
|
||||||
--- a/pixman/pixman-arm-asm.h
|
|
||||||
+++ b/pixman/pixman-arm-asm.h
|
|
||||||
@@ -30,6 +30,48 @@
|
|
||||||
|
|
||||||
#include "pixman-config.h"
|
|
||||||
|
|
||||||
+/*
|
|
||||||
+ * References:
|
|
||||||
+ * - https://developer.arm.com/documentation/101028/0012/5--Feature-test-macros
|
|
||||||
+ * - https://github.com/ARM-software/abi-aa/blob/main/aaelf64/aaelf64.rst
|
|
||||||
+ */
|
|
||||||
+#if defined(__ARM_FEATURE_BTI_DEFAULT) && __ARM_FEATURE_BTI_DEFAULT == 1
|
|
||||||
+ #define BTI_C hint 34 /* bti c: for calls, IE bl instructions */
|
|
||||||
+ #define GNU_PROPERTY_AARCH64_BTI 1 /* bit 0 GNU Notes is for BTI support */
|
|
||||||
+#else
|
|
||||||
+ #define BTI_C
|
|
||||||
+ #define GNU_PROPERTY_AARCH64_BTI 0
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if defined(__ARM_FEATURE_PAC_DEFAULT)
|
|
||||||
+ #if __ARM_FEATURE_PAC_DEFAULT & 1
|
|
||||||
+ #define SIGN_LR hint 25 /* paciasp: sign with the A key */
|
|
||||||
+ #define VERIFY_LR hint 29 /* autiasp: verify with the b key */
|
|
||||||
+ #elif __ARM_FEATURE_PAC_DEFAULT & 2
|
|
||||||
+ #define SIGN_LR hint 27 /* pacibsp: sign with the b key */
|
|
||||||
+ #define VERIFY_LR hint 31 /* autibsp: verify with the b key */
|
|
||||||
+ #endif
|
|
||||||
+ #define GNU_PROPERTY_AARCH64_POINTER_AUTH 2 /* bit 1 GNU Notes is for PAC support */
|
|
||||||
+#else
|
|
||||||
+ #define SIGN_LR BTI_C
|
|
||||||
+ #define VERIFY_LR
|
|
||||||
+ #define GNU_PROPERTY_AARCH64_POINTER_AUTH 0
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+/* Add the BTI support to GNU Notes section for ASM files */
|
|
||||||
+#if GNU_PROPERTY_AARCH64_BTI != 0 || GNU_PROPERTY_AARCH64_POINTER_AUTH != 0
|
|
||||||
+ .pushsection .note.gnu.property, "a"; /* Start a new allocatable section */
|
|
||||||
+ .balign 8; /* align it on a byte boundry */
|
|
||||||
+ .long 4; /* size of "GNU\0" */
|
|
||||||
+ .long 0x10; /* size of descriptor */
|
|
||||||
+ .long 0x5; /* NT_GNU_PROPERTY_TYPE_0 */
|
|
||||||
+ .asciz "GNU";
|
|
||||||
+ .long 0xc0000000; /* GNU_PROPERTY_AARCH64_FEATURE_1_AND */
|
|
||||||
+ .long 4; /* Four bytes of data */
|
|
||||||
+ .long (GNU_PROPERTY_AARCH64_BTI|GNU_PROPERTY_AARCH64_POINTER_AUTH); /* BTI or PAC is enabled */
|
|
||||||
+ .long 0; /* padding for 8 byte alignment */
|
|
||||||
+ .popsection; /* end the section */
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/* Supplementary macro for setting function attributes */
|
|
||||||
.macro pixman_asm_function_impl fname
|
|
||||||
@@ -42,6 +84,7 @@
|
|
||||||
.type \fname, %function
|
|
||||||
#endif
|
|
||||||
\fname:
|
|
||||||
+ SIGN_LR
|
|
||||||
.endm
|
|
||||||
|
|
||||||
.macro pixman_asm_function fname
|
|
||||||
diff --git a/pixman/pixman-arma64-neon-asm-bilinear.S b/pixman/pixman-arma64-neon-asm-bilinear.S
|
|
||||||
index 7303bdc..f11f8c8 100644
|
|
||||||
--- a/pixman/pixman-arma64-neon-asm-bilinear.S
|
|
||||||
+++ b/pixman/pixman-arma64-neon-asm-bilinear.S
|
|
||||||
@@ -812,6 +812,7 @@ pixman_asm_function \fname
|
|
||||||
mov sp, x29
|
|
||||||
ldp x29, x30, [sp], 16
|
|
||||||
.endif
|
|
||||||
+ VERIFY_LR
|
|
||||||
ret
|
|
||||||
|
|
||||||
.unreq OUT
|
|
||||||
diff --git a/pixman/pixman-arma64-neon-asm.S b/pixman/pixman-arma64-neon-asm.S
|
|
||||||
index 107c133..7329d4b 100644
|
|
||||||
--- a/pixman/pixman-arma64-neon-asm.S
|
|
||||||
+++ b/pixman/pixman-arma64-neon-asm.S
|
|
||||||
@@ -3541,6 +3541,7 @@ pixman_asm_function \fname
|
|
||||||
ldp x12, x13, [x29, -104]
|
|
||||||
mov sp, x29
|
|
||||||
ldp x29, x30, [sp], 16
|
|
||||||
+ VERIFY_LR
|
|
||||||
ret
|
|
||||||
|
|
||||||
.unreq OUT
|
|
||||||
diff --git a/pixman/pixman-arma64-neon-asm.h b/pixman/pixman-arma64-neon-asm.h
|
|
||||||
index 6aa6838..ec3d76f 100644
|
|
||||||
--- a/pixman/pixman-arma64-neon-asm.h
|
|
||||||
+++ b/pixman/pixman-arma64-neon-asm.h
|
|
||||||
@@ -47,6 +47,8 @@
|
|
||||||
* - maybe add an option to do reverse scanline processing
|
|
||||||
*/
|
|
||||||
|
|
||||||
+#include "pixman-arm-asm.h"
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* Bit flags for 'generate_composite_function' macro which are used
|
|
||||||
* to tune generated functions behavior.
|
|
||||||
@@ -232,14 +234,16 @@
|
|
||||||
asr TMP1, VX, #16
|
|
||||||
adds VX, VX, UNIT_X
|
|
||||||
bmi 55f
|
|
||||||
-5: subs VX, VX, SRC_WIDTH_FIXED
|
|
||||||
+5:
|
|
||||||
+ subs VX, VX, SRC_WIDTH_FIXED
|
|
||||||
bpl 5b
|
|
||||||
55:
|
|
||||||
add TMP1, \mem_operand, TMP1, lsl #1
|
|
||||||
asr TMP2, VX, #16
|
|
||||||
adds VX, VX, UNIT_X
|
|
||||||
bmi 55f
|
|
||||||
-5: subs VX, VX, SRC_WIDTH_FIXED
|
|
||||||
+5:
|
|
||||||
+ subs VX, VX, SRC_WIDTH_FIXED
|
|
||||||
bpl 5b
|
|
||||||
55:
|
|
||||||
add TMP2, \mem_operand, TMP2, lsl #1
|
|
||||||
@@ -247,7 +251,8 @@
|
|
||||||
asr TMP1, VX, #16
|
|
||||||
adds VX, VX, UNIT_X
|
|
||||||
bmi 55f
|
|
||||||
-5: subs VX, VX, SRC_WIDTH_FIXED
|
|
||||||
+5:
|
|
||||||
+ subs VX, VX, SRC_WIDTH_FIXED
|
|
||||||
bpl 5b
|
|
||||||
55:
|
|
||||||
add TMP1, \mem_operand, TMP1, lsl #1
|
|
||||||
@@ -255,7 +260,8 @@
|
|
||||||
asr TMP2, VX, #16
|
|
||||||
adds VX, VX, UNIT_X
|
|
||||||
bmi 55f
|
|
||||||
-5: subs VX, VX, SRC_WIDTH_FIXED
|
|
||||||
+5:
|
|
||||||
+ subs VX, VX, SRC_WIDTH_FIXED
|
|
||||||
bpl 5b
|
|
||||||
55:
|
|
||||||
add TMP2, \mem_operand, TMP2, lsl #1
|
|
||||||
@@ -265,14 +271,16 @@
|
|
||||||
asr TMP1, VX, #16
|
|
||||||
adds VX, VX, UNIT_X
|
|
||||||
bmi 55f
|
|
||||||
-5: subs VX, VX, SRC_WIDTH_FIXED
|
|
||||||
+5:
|
|
||||||
+ subs VX, VX, SRC_WIDTH_FIXED
|
|
||||||
bpl 5b
|
|
||||||
55:
|
|
||||||
add TMP1, \mem_operand, TMP1, lsl #2
|
|
||||||
asr TMP2, VX, #16
|
|
||||||
adds VX, VX, UNIT_X
|
|
||||||
bmi 55f
|
|
||||||
-5: subs VX, VX, SRC_WIDTH_FIXED
|
|
||||||
+5:
|
|
||||||
+ subs VX, VX, SRC_WIDTH_FIXED
|
|
||||||
bpl 5b
|
|
||||||
55:
|
|
||||||
add TMP2, \mem_operand, TMP2, lsl #2
|
|
||||||
@@ -312,7 +320,8 @@
|
|
||||||
asr TMP1, VX, #16
|
|
||||||
adds VX, VX, UNIT_X
|
|
||||||
bmi 55f
|
|
||||||
-5: subs VX, VX, SRC_WIDTH_FIXED
|
|
||||||
+5:
|
|
||||||
+ subs VX, VX, SRC_WIDTH_FIXED
|
|
||||||
bpl 5b
|
|
||||||
55:
|
|
||||||
add TMP1, \mem_operand, TMP1, lsl #1
|
|
||||||
@@ -322,7 +331,8 @@
|
|
||||||
mov TMP1, DUMMY
|
|
||||||
adds VX, VX, UNIT_X
|
|
||||||
bmi 55f
|
|
||||||
-5: subs VX, VX, SRC_WIDTH_FIXED
|
|
||||||
+5:
|
|
||||||
+ subs VX, VX, SRC_WIDTH_FIXED
|
|
||||||
bpl 5b
|
|
||||||
55:
|
|
||||||
add TMP1, \mem_operand, TMP1, lsl #2
|
|
||||||
@@ -917,6 +927,7 @@
|
|
||||||
ldr x28, [x29, -232]
|
|
||||||
mov sp, x29
|
|
||||||
ldp x29, x30, [sp], 16
|
|
||||||
+ VERIFY_LR
|
|
||||||
ret /* exit */
|
|
||||||
/*
|
|
||||||
* This is the start of the loop, designed to process images with small width
|
|
||||||
@@ -974,6 +985,7 @@
|
|
||||||
ldr x28, [x29, -232]
|
|
||||||
mov sp, x29
|
|
||||||
ldp x29, x30, [sp], 16
|
|
||||||
+ VERIFY_LR
|
|
||||||
ret /* exit */
|
|
||||||
|
|
||||||
.purgem fetch_src_pixblock
|
|
||||||
@@ -1155,6 +1167,7 @@
|
|
||||||
ldr x10, [x29, -96]
|
|
||||||
mov sp, x29
|
|
||||||
ldp x29, x30, [sp], 16
|
|
||||||
+ VERIFY_LR
|
|
||||||
ret /* exit */
|
|
||||||
.else
|
|
||||||
sub x29, x29, 64
|
|
||||||
@@ -1162,6 +1175,7 @@
|
|
||||||
ld1 {v12.8b, v13.8b, v14.8b, v15.8b}, [x29], 32
|
|
||||||
mov sp, x29
|
|
||||||
ldp x29, x30, [sp], 16
|
|
||||||
+ VERIFY_LR
|
|
||||||
ret /* exit */
|
|
||||||
.endif
|
|
||||||
800:
|
|
||||||
@@ -1180,6 +1194,7 @@
|
|
||||||
ldr x10, [x29, -88]
|
|
||||||
mov sp, x29
|
|
||||||
ldp x29, x30, [sp], 16
|
|
||||||
+ VERIFY_LR
|
|
||||||
ret /* exit */
|
|
||||||
|
|
||||||
.unreq DUMMY
|
|
||||||
@@ -1200,6 +1215,7 @@
|
|
||||||
ld1 {v12.8b, v13.8b, v14.8b, v15.8b}, [x29], 32
|
|
||||||
mov sp, x29
|
|
||||||
ldp x29, x30, [sp], 16
|
|
||||||
+ VERIFY_LR
|
|
||||||
ret /* exit */
|
|
||||||
|
|
||||||
.unreq DUMMY
|
|
||||||
--
|
|
||||||
2.46.0
|
|
||||||
|
|
@ -0,0 +1,29 @@
|
|||||||
|
From a1f88e842e0216a5b4df1ab023caebe33c101395 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Matt Turner <mattst88@gmail.com>
|
||||||
|
Date: Wed, 2 Nov 2022 12:07:32 -0400
|
||||||
|
Subject: [PATCH] Avoid integer overflow leading to out-of-bounds write
|
||||||
|
|
||||||
|
Thanks to Maddie Stone and Google's Project Zero for discovering this
|
||||||
|
issue, providing a proof-of-concept, and a great analysis.
|
||||||
|
|
||||||
|
Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/63
|
||||||
|
---
|
||||||
|
pixman/pixman-trap.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/pixman/pixman-trap.c b/pixman/pixman-trap.c
|
||||||
|
index 91766fd..7560405 100644
|
||||||
|
--- a/pixman/pixman-trap.c
|
||||||
|
+++ b/pixman/pixman-trap.c
|
||||||
|
@@ -74,7 +74,7 @@ pixman_sample_floor_y (pixman_fixed_t y,
|
||||||
|
|
||||||
|
if (f < Y_FRAC_FIRST (n))
|
||||||
|
{
|
||||||
|
- if (pixman_fixed_to_int (i) == 0x8000)
|
||||||
|
+ if (pixman_fixed_to_int (i) == 0xffff8000)
|
||||||
|
{
|
||||||
|
f = 0; /* saturate */
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -0,0 +1,84 @@
|
|||||||
|
From 8256c235d9b3854d039242356905eca854a890ba Mon Sep 17 00:00:00 2001
|
||||||
|
From: Basile Clement <basile-pixman@clement.pm>
|
||||||
|
Date: Tue, 9 Apr 2019 23:16:13 +0200
|
||||||
|
Subject: [PATCH] Fix bilinear filter computation in wide pipeline
|
||||||
|
|
||||||
|
The recently introduced wide pipeline for filters has a typo which
|
||||||
|
causes it to improperly compute bilinear interpolation positions,
|
||||||
|
causing various glitches when enabled.
|
||||||
|
|
||||||
|
This patch uses the proper computation for bilinear interpolation in the
|
||||||
|
wide pipeline. It also makes related `if` statements conformant to the
|
||||||
|
CODING_STYLE:
|
||||||
|
|
||||||
|
* If a substatement spans multiple lines, then there must be braces
|
||||||
|
around it.
|
||||||
|
|
||||||
|
* If one substatement of an if statement has braces, then the other
|
||||||
|
must too.
|
||||||
|
|
||||||
|
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
|
||||||
|
---
|
||||||
|
pixman/pixman-bits-image.c | 9 +++++++++
|
||||||
|
pixman/pixman-inlines.h | 2 +-
|
||||||
|
2 files changed, 10 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/pixman/pixman-bits-image.c b/pixman/pixman-bits-image.c
|
||||||
|
index 564789e..7bc2ba8 100644
|
||||||
|
--- a/pixman/pixman-bits-image.c
|
||||||
|
+++ b/pixman/pixman-bits-image.c
|
||||||
|
@@ -432,29 +432,38 @@ bits_image_fetch_pixel_filtered (bits_image_t *image,
|
||||||
|
|
||||||
|
case PIXMAN_FILTER_CONVOLUTION:
|
||||||
|
if (wide)
|
||||||
|
+ {
|
||||||
|
bits_image_fetch_pixel_convolution (image, x, y,
|
||||||
|
get_pixel, out,
|
||||||
|
accum_float,
|
||||||
|
reduce_float);
|
||||||
|
+ }
|
||||||
|
else
|
||||||
|
+ {
|
||||||
|
bits_image_fetch_pixel_convolution (image, x, y,
|
||||||
|
get_pixel, out,
|
||||||
|
accum_32, reduce_32);
|
||||||
|
+ }
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PIXMAN_FILTER_SEPARABLE_CONVOLUTION:
|
||||||
|
if (wide)
|
||||||
|
+ {
|
||||||
|
bits_image_fetch_pixel_separable_convolution (image, x, y,
|
||||||
|
get_pixel, out,
|
||||||
|
accum_float,
|
||||||
|
reduce_float);
|
||||||
|
+ }
|
||||||
|
else
|
||||||
|
+ {
|
||||||
|
bits_image_fetch_pixel_separable_convolution (image, x, y,
|
||||||
|
get_pixel, out,
|
||||||
|
accum_32, reduce_32);
|
||||||
|
+ }
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
+ assert (0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/pixman/pixman-inlines.h b/pixman/pixman-inlines.h
|
||||||
|
index 332e208..f785910 100644
|
||||||
|
--- a/pixman/pixman-inlines.h
|
||||||
|
+++ b/pixman/pixman-inlines.h
|
||||||
|
@@ -231,7 +231,7 @@ bilinear_interpolation_float (argb_t tl, argb_t tr,
|
||||||
|
argb_t r;
|
||||||
|
|
||||||
|
distxy = distx * disty;
|
||||||
|
- distxiy = distx - (1.f - distxy);
|
||||||
|
+ distxiy = distx * (1.f - disty);
|
||||||
|
distixy = (1.f - distx) * disty;
|
||||||
|
distixiy = (1.f - distx) * (1.f - disty);
|
||||||
|
|
||||||
|
--
|
||||||
|
2.37.1
|
||||||
|
|
@ -0,0 +1,34 @@
|
|||||||
|
From 6fe0131394fb029d2fccaee6b8edcb108840ad8a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Federico Mena Quintero <federico@gnome.org>
|
||||||
|
Date: Wed, 18 Mar 2020 18:49:30 -0600
|
||||||
|
Subject: [PATCH] Initialize temporary buffers in general_composite_rect()
|
||||||
|
|
||||||
|
Otherwise, Valgrind shows things like "conditional jump or move
|
||||||
|
depends on uninitialised values" errors much later in calling code.
|
||||||
|
For example, see https://gitlab.gnome.org/GNOME/librsvg/issues/572
|
||||||
|
|
||||||
|
Fixes https://gitlab.freedesktop.org/pixman/pixman/issues/9
|
||||||
|
---
|
||||||
|
pixman/pixman-general.c | 6 ++++++
|
||||||
|
1 file changed, 6 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/pixman/pixman-general.c b/pixman/pixman-general.c
|
||||||
|
index 7d74f98..7e5a0d0 100644
|
||||||
|
--- a/pixman/pixman-general.c
|
||||||
|
+++ b/pixman/pixman-general.c
|
||||||
|
@@ -165,6 +165,12 @@ general_composite_rect (pixman_implementation_t *imp,
|
||||||
|
|
||||||
|
if (!scanline_buffer)
|
||||||
|
return;
|
||||||
|
+
|
||||||
|
+ memset (scanline_buffer, 0, width * Bpp * 3 + 15 * 3);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ memset (stack_scanline_buffer, 0, sizeof (stack_scanline_buffer));
|
||||||
|
}
|
||||||
|
|
||||||
|
src_buffer = ALIGN (scanline_buffer);
|
||||||
|
--
|
||||||
|
2.34.1
|
||||||
|
|
@ -2,56 +2,58 @@
|
|||||||
%define gitrev 8ff7213f39edc1b2b8b60d6b0cc5d5f14ca1928d
|
%define gitrev 8ff7213f39edc1b2b8b60d6b0cc5d5f14ca1928d
|
||||||
|
|
||||||
Name: pixman
|
Name: pixman
|
||||||
Version: 0.43.4
|
Version: 0.38.4
|
||||||
Release: 2%{?dist}
|
Release: 4%{?dist}
|
||||||
Summary: Pixel manipulation library
|
Summary: Pixel manipulation library
|
||||||
|
|
||||||
# SPDX
|
Group: System Environment/Libraries
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: https://gitlab.freedesktop.org/pixman/pixman
|
URL: https://gitlab.freedesktop.org/pixman/pixman
|
||||||
#VCS: git:git://git.freedesktop.org/git/pixman
|
#VCS: git:git://git.freedesktop.org/git/pixman
|
||||||
# To make git snapshots:
|
# To make git snapshots:
|
||||||
# ./make-pixman-snapshot.sh %{\?gitrev}
|
# ./make-pixman-snapshot.sh %{\?gitrev}
|
||||||
# if no revision specified, makes a new one from HEAD.
|
# if no revision specified, makes a new one from HEAD.
|
||||||
Source0: https://xorg.freedesktop.org/archive/individual/lib/%{name}-%{version}.tar.xz
|
Source0: https://xorg.freedesktop.org/archive/individual/lib/%{name}-%{version}.tar.bz2
|
||||||
Source1: make-pixman-snapshot.sh
|
Source1: make-pixman-snapshot.sh
|
||||||
|
|
||||||
Patch00: 0001-arm-add-include-guards-on-header.patch
|
Patch0: 0001-Initialize-temporary-buffers-in-general_composite_re.patch
|
||||||
Patch01: 0002-aarch64-support-PAC-and-BTI.patch
|
Patch1: 0001-Fix-bilinear-filter-computation-in-wide-pipeline.patch
|
||||||
|
Patch2: 0001-Avoid-integer-overflow-leading-to-out-of-bounds-writ.patch
|
||||||
|
|
||||||
|
BuildRequires: automake autoconf libtool
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: meson
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Pixman is a pixel manipulation library for X and Cairo.
|
Pixman is a pixel manipulation library for X and Cairo.
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Summary: Pixel manipulation library development package
|
Summary: Pixel manipulation library development package
|
||||||
|
Group: Development/Libraries
|
||||||
Requires: %{name}%{?isa} = %{version}-%{release}
|
Requires: %{name}%{?isa} = %{version}-%{release}
|
||||||
Requires: pkgconfig
|
Requires: pkgconfig
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
Pixel manipulation library for X and Cairo development package.
|
Development library for pixman.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1
|
%autosetup -p1
|
||||||
# bump up the test suite timeout because arm
|
|
||||||
sed -i 's/120/600/' test/meson.build
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%meson --auto-features=auto \
|
%configure \
|
||||||
%ifarch %{arm}
|
%ifarch %{arm}
|
||||||
-Diwmmxt=disabled -Diwmmxt2=false \
|
--disable-arm-iwmmxt --disable-arm-iwmmxt2 \
|
||||||
%endif
|
%endif
|
||||||
%nil
|
--disable-static
|
||||||
|
|
||||||
%meson_build
|
make %{?_smp_mflags} V=1
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%meson_install
|
make install DESTDIR=$RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
find %{buildroot} -type f -name "*.la" -delete
|
||||||
|
|
||||||
%check
|
%check
|
||||||
%meson_test
|
make check %{?_smp_mflags} V=1
|
||||||
|
|
||||||
%ldconfig_post
|
%ldconfig_post
|
||||||
%ldconfig_postun
|
%ldconfig_postun
|
||||||
@ -68,71 +70,17 @@ sed -i 's/120/600/' test/meson.build
|
|||||||
%{_libdir}/pkgconfig/pixman-1.pc
|
%{_libdir}/pkgconfig/pixman-1.pc
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 0.43.4-2
|
* Wed Oct 04 2023 José Expósito <jexposit@redhat.com> - 0.38.4-4
|
||||||
- Bump release for October 2024 mass rebuild:
|
- Backport fix for CVE-2022-44638
|
||||||
Resolves: RHEL-64018
|
|
||||||
|
|
||||||
* Wed Sep 18 2024 José Expósito <jexposit@redhat.com> - 0.43.4-1
|
* Sat Sep 03 2022 Benjamin Gilbert <bgilbert@backtick.net> - 0.38.4-3
|
||||||
- Update to 0.43.4
|
- Fix bilinear filter computation in wide pipeline
|
||||||
- Resolves: https://issues.redhat.com/browse/RHEL-45709
|
|
||||||
|
|
||||||
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 0.43.0-4
|
* Tue Feb 22 2022 Adam Jackson <ajax@redhat.com> - 0.38.4-2
|
||||||
- Bump release for June 2024 mass rebuild
|
- Backport the pixman part of cairo CVE-2020-35492
|
||||||
|
|
||||||
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.43.0-3
|
* Tue Nov 19 2019 Adam Jackson <ajax@redhat.com> - 0.38.4-1
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
- pixman 0.38.4
|
||||||
|
|
||||||
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.43.0-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Jan 09 2024 José Expósito <jexposit@redhat.com> - 0.43.0-1
|
|
||||||
- Update to 0.43.0
|
|
||||||
|
|
||||||
* Thu Sep 07 2023 José Expósito <jexposit@redhat.com>
|
|
||||||
- SPDX migration: license is already SPDX compatible
|
|
||||||
|
|
||||||
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.42.2-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Feb 21 2023 Petter Abrahamsson <pabraham@redhat.com> - 0.42.2-1
|
|
||||||
- Update to 0.42.2
|
|
||||||
|
|
||||||
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.40.0-7
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.40.0-6
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.40.0-5
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
|
||||||
|
|
||||||
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.40.0-4
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.40.0-3
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.40.0-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon Apr 20 2020 Kalev Lember <klember@redhat.com> - 0.40.0-1
|
|
||||||
- Update to 0.40.0
|
|
||||||
|
|
||||||
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.38.4-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
|
||||||
|
|
||||||
* Mon Sep 09 2019 Kalev Lember <klember@redhat.com> - 0.38.4-1
|
|
||||||
- Update to 0.38.4
|
|
||||||
|
|
||||||
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.38.0-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Feb 12 2019 Kalev Lember <klember@redhat.com> - 0.38.0-1
|
|
||||||
- Update to 0.38.0
|
|
||||||
- Switch to the meson build system
|
|
||||||
|
|
||||||
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.36.0-2
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Nov 29 2018 Adam Jackson <ajax@redhat.com> - 0.36.0-1
|
* Thu Nov 29 2018 Adam Jackson <ajax@redhat.com> - 0.36.0-1
|
||||||
- pixman 0.36.0
|
- pixman 0.36.0
|
@ -1,7 +0,0 @@
|
|||||||
--- !Policy
|
|
||||||
product_versions:
|
|
||||||
- rhel-10
|
|
||||||
decision_context: osci_compose_gate
|
|
||||||
rules:
|
|
||||||
- !PassingTestCaseRule {test_case_name: desktop-qe.desktop-ci.tier1-gating.functional}
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
diff -up pixman-0.34.0/pixman/pixman-vmx.c.orig pixman-0.34.0/pixman/pixman-vmx.c
|
|
||||||
--- pixman-0.34.0/pixman/pixman-vmx.c.orig 2018-04-27 12:10:14.411696502 +0200
|
|
||||||
+++ pixman-0.34.0/pixman/pixman-vmx.c 2018-04-27 12:27:41.174290224 +0200
|
|
||||||
@@ -227,7 +227,7 @@ do \
|
|
||||||
#define COMPUTE_SHIFT_MASKC(dest, source, mask)
|
|
||||||
|
|
||||||
# define LOAD_VECTOR(source) \
|
|
||||||
- v ## source = *((typeof(v ## source)*)source);
|
|
||||||
+ v ## source = (typeof(v ## source))vec_xl(0, source);
|
|
||||||
|
|
||||||
# define LOAD_VECTORS(dest, source) \
|
|
||||||
LOAD_VECTOR(source); \
|
|
Loading…
Reference in New Issue
Block a user