summaryrefslogtreecommitdiff
path: root/user/cairo/CVE-2020-35492.patch
diff options
context:
space:
mode:
authorZach van Rijn <me@zv.io>2021-07-27 23:41:01 +0000
committerZach van Rijn <me@zv.io>2021-07-27 23:41:01 +0000
commitdbf2ee8a4c30d9326a182f421fbc2e5b58f9fc6d (patch)
treef0b5cb765c7f5a5ad19dd7db8303e1816ba9ebdf /user/cairo/CVE-2020-35492.patch
parentcb89ebf6d88ee2ce9c87fbfc27d75fa65b3baa48 (diff)
parenteff1c3c87532b591492fec9e3952425e199547a9 (diff)
downloadpackages-dbf2ee8a4c30d9326a182f421fbc2e5b58f9fc6d.tar.gz
packages-dbf2ee8a4c30d9326a182f421fbc2e5b58f9fc6d.tar.bz2
packages-dbf2ee8a4c30d9326a182f421fbc2e5b58f9fc6d.tar.xz
packages-dbf2ee8a4c30d9326a182f421fbc2e5b58f9fc6d.zip
Merge branch 'aerdan/20210721' into 'master'
Bump packages owned by Síle See merge request adelie/packages!619
Diffstat (limited to 'user/cairo/CVE-2020-35492.patch')
-rw-r--r--user/cairo/CVE-2020-35492.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/user/cairo/CVE-2020-35492.patch b/user/cairo/CVE-2020-35492.patch
new file mode 100644
index 000000000..d7369b3d6
--- /dev/null
+++ b/user/cairo/CVE-2020-35492.patch
@@ -0,0 +1,54 @@
+From 03a820b173ed1fdef6ff14b4468f5dbc02ff59be Mon Sep 17 00:00:00 2001
+From: Heiko Lewin <heiko.lewin@worldiety.de>
+Date: Tue, 15 Dec 2020 16:48:19 +0100
+Subject: [PATCH] Fix mask usage in image-compositor
+
+---
+ src/cairo-image-compositor.c | 8 ++--
+ test/Makefile.sources | 1 +
+ test/bug-image-compositor.c | 39 ++++++++++++++++++++
+ test/reference/bug-image-compositor.ref.png | Bin 0 -> 185 bytes
+ 4 files changed, 44 insertions(+), 4 deletions(-)
+ create mode 100644 test/bug-image-compositor.c
+ create mode 100644 test/reference/bug-image-compositor.ref.png
+
+diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
+index 79ad69f68..4f8aaed99 100644
+--- a/src/cairo-image-compositor.c
++++ b/src/cairo-image-compositor.c
+@@ -2610,14 +2610,14 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
+ unsigned num_spans)
+ {
+ cairo_image_span_renderer_t *r = abstract_renderer;
+- uint8_t *m;
++ uint8_t *m, *base = (uint8_t*)pixman_image_get_data(r->mask);
+ int x0;
+
+ if (num_spans == 0)
+ return CAIRO_STATUS_SUCCESS;
+
+ x0 = spans[0].x;
+- m = r->_buf;
++ m = base;
+ do {
+ int len = spans[1].x - spans[0].x;
+ if (len >= r->u.composite.run_length && spans[0].coverage == 0xff) {
+@@ -2655,7 +2655,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
+ spans[0].x, y,
+ spans[1].x - spans[0].x, h);
+
+- m = r->_buf;
++ m = base;
+ x0 = spans[1].x;
+ } else if (spans[0].coverage == 0x0) {
+ if (spans[0].x != x0) {
+@@ -2684,7 +2684,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
+ #endif
+ }
+
+- m = r->_buf;
++ m = base;
+ x0 = spans[1].x;
+ } else {
+ *m++ = spans[0].coverage;
+