cairo: updated to 1.15.12

This commit is contained in:
Fredrik Rinnestam 2018-07-06 19:43:40 +02:00
parent b115c75c26
commit 7e589f9e6a
5 changed files with 15 additions and 144 deletions

View File

@ -32,19 +32,19 @@ drwxr-xr-x root/root usr/lib/cairo/
-rwxr-xr-x root/root usr/lib/cairo/libcairo-trace.so
-rw-r--r-- root/root usr/lib/libcairo-gobject.a
-rwxr-xr-x root/root usr/lib/libcairo-gobject.la
lrwxrwxrwx root/root usr/lib/libcairo-gobject.so -> libcairo-gobject.so.2.11510.0
lrwxrwxrwx root/root usr/lib/libcairo-gobject.so.2 -> libcairo-gobject.so.2.11510.0
-rwxr-xr-x root/root usr/lib/libcairo-gobject.so.2.11510.0
lrwxrwxrwx root/root usr/lib/libcairo-gobject.so -> libcairo-gobject.so.2.11512.0
lrwxrwxrwx root/root usr/lib/libcairo-gobject.so.2 -> libcairo-gobject.so.2.11512.0
-rwxr-xr-x root/root usr/lib/libcairo-gobject.so.2.11512.0
-rw-r--r-- root/root usr/lib/libcairo-script-interpreter.a
-rwxr-xr-x root/root usr/lib/libcairo-script-interpreter.la
lrwxrwxrwx root/root usr/lib/libcairo-script-interpreter.so -> libcairo-script-interpreter.so.2.11510.0
lrwxrwxrwx root/root usr/lib/libcairo-script-interpreter.so.2 -> libcairo-script-interpreter.so.2.11510.0
-rwxr-xr-x root/root usr/lib/libcairo-script-interpreter.so.2.11510.0
lrwxrwxrwx root/root usr/lib/libcairo-script-interpreter.so -> libcairo-script-interpreter.so.2.11512.0
lrwxrwxrwx root/root usr/lib/libcairo-script-interpreter.so.2 -> libcairo-script-interpreter.so.2.11512.0
-rwxr-xr-x root/root usr/lib/libcairo-script-interpreter.so.2.11512.0
-rw-r--r-- root/root usr/lib/libcairo.a
-rwxr-xr-x root/root usr/lib/libcairo.la
lrwxrwxrwx root/root usr/lib/libcairo.so -> libcairo.so.2.11510.0
lrwxrwxrwx root/root usr/lib/libcairo.so.2 -> libcairo.so.2.11510.0
-rwxr-xr-x root/root usr/lib/libcairo.so.2.11510.0
lrwxrwxrwx root/root usr/lib/libcairo.so -> libcairo.so.2.11512.0
lrwxrwxrwx root/root usr/lib/libcairo.so.2 -> libcairo.so.2.11512.0
-rwxr-xr-x root/root usr/lib/libcairo.so.2.11512.0
drwxr-xr-x root/root usr/lib/pkgconfig/
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-fc.pc
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-ft.pc

View File

@ -1,4 +0,0 @@
a3d7abd8e20b780f76300a76a4a4d963 0001-image-prevent-invalid-ptr-access-for-4GB-images.patch
f060381576d67c855fad03e327fc9a69 cairo-1.15.10.tar.xz
bff33916d8b44e9c3f0f3e6644e61bfc cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff
d602f595c5800bf470c33cd1af7541d1 cairo-xlib-endianness.patch

View File

@ -1,8 +1,7 @@
untrusted comment: verify with /etc/ports/opt.pub
RWSE3ohX2g5d/d3HDpfJuuzMp1HVp/CKhvxK8fRIGDpj5Uj1h4EpLRe7oWemF5/GmYZj08WvWcly2+aINQtDwpDCpTXWIS9EjAg=
SHA256 (Pkgfile) = 88f9d4ef4ec2177303d9a976ee1e161784dfee4cfd19e28429f38b33af039fa9
SHA256 (.footprint) = e4abb8423e262c6654e1f6f886c7463ce4280bb872f57683bd50ad8e2e8696c0
SHA256 (cairo-1.15.10.tar.xz) = 62ca226134cf2f1fd114bea06f8b374eb37f35d8e22487eaa54d5e9428958392
RWSE3ohX2g5d/V75ES4q1n9EY83IKCmziYAj9t6xNSNYo4sh8P4AiARtEfptt1tLaoGT6sBhHWM23u0Yfa4pBWwhrNgpQVvLSgw=
SHA256 (Pkgfile) = 14f7a26a21078cf11c17c665a7b99955815ff1230bf7b809e92b4d49320c7e43
SHA256 (.footprint) = 3be630129dac3c62c076c58816da878d379a462622fea9c673ed5b53a166980c
SHA256 (cairo-1.15.12.tar.xz) = 7623081b94548a47ee6839a7312af34e9322997806948b6eec421a8c6d0594c9
SHA256 (cairo-xlib-endianness.patch) = 58d39311edee6d8ddf76deac1d2e3526b4c02d4aa1f35a6ca16ff50c8e65429f
SHA256 (cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff) = 4c8b8095a41f244ddfbc9b24e2f73a6fd8d697f43903617e0519b95b27b30726
SHA256 (0001-image-prevent-invalid-ptr-access-for-4GB-images.patch) = 79cb7b65d1079efb36ee62ec5ddf6e930dc24e0fd3ac4d914aadf98afb15c8f8

View File

@ -1,122 +0,0 @@
From c812d1c1935cccf096a60ad904e640fdc83bd41c Mon Sep 17 00:00:00 2001
From: Adrian Johnson <ajohnson@redneon.com>
Date: Thu, 20 Oct 2016 21:12:30 +1030
Subject: [PATCH] image: prevent invalid ptr access for > 4GB images
Image data is often accessed using:
image->data + y * image->stride
On 64-bit achitectures if the image data is > 4GB, this computation
will overflow since both y and stride are 32-bit types.
https://bugs.freedesktop.org/show_bug.cgi?id=98165
---
boilerplate/cairo-boilerplate.c | 4 +++-
src/cairo-image-compositor.c | 4 ++--
src/cairo-image-surface-private.h | 2 +-
src/cairo-mesh-pattern-rasterizer.c | 2 +-
src/cairo-png.c | 2 +-
src/cairo-script-surface.c | 3 ++-
6 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/boilerplate/cairo-boilerplate.c b/boilerplate/cairo-boilerplate.c
index 7fdbf79..4804dea 100644
--- a/boilerplate/cairo-boilerplate.c
+++ b/boilerplate/cairo-boilerplate.c
@@ -42,6 +42,7 @@
#undef CAIRO_VERSION_H
#include "../cairo-version.h"
+#include <stddef.h>
#include <stdlib.h>
#include <ctype.h>
#include <assert.h>
@@ -976,7 +977,8 @@ cairo_surface_t *
cairo_boilerplate_image_surface_create_from_ppm_stream (FILE *file)
{
char format;
- int width, height, stride;
+ int width, height;
+ ptrdiff_t stride;
int x, y;
unsigned char *data;
cairo_surface_t *image = NULL;
diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
index 48072f8..3ca0006 100644
--- a/src/cairo-image-compositor.c
+++ b/src/cairo-image-compositor.c
@@ -1575,7 +1575,7 @@ typedef struct _cairo_image_span_renderer {
pixman_image_t *src, *mask;
union {
struct fill {
- int stride;
+ ptrdiff_t stride;
uint8_t *data;
uint32_t pixel;
} fill;
@@ -1594,7 +1594,7 @@ typedef struct _cairo_image_span_renderer {
struct finish {
cairo_rectangle_int_t extents;
int src_x, src_y;
- int stride;
+ ptrdiff_t stride;
uint8_t *data;
} mask;
} u;
diff --git a/src/cairo-image-surface-private.h b/src/cairo-image-surface-private.h
index 8ca694c..7e78d61 100644
--- a/src/cairo-image-surface-private.h
+++ b/src/cairo-image-surface-private.h
@@ -71,7 +71,7 @@ struct _cairo_image_surface {
int width;
int height;
- int stride;
+ ptrdiff_t stride;
int depth;
unsigned owns_data : 1;
diff --git a/src/cairo-mesh-pattern-rasterizer.c b/src/cairo-mesh-pattern-rasterizer.c
index 1b63ca8..e7f0db6 100644
--- a/src/cairo-mesh-pattern-rasterizer.c
+++ b/src/cairo-mesh-pattern-rasterizer.c
@@ -470,7 +470,7 @@ draw_pixel (unsigned char *data, int width, int height, int stride,
tg += tg >> 16;
tb += tb >> 16;
- *((uint32_t*) (data + y*stride + 4*x)) = ((ta << 16) & 0xff000000) |
+ *((uint32_t*) (data + y*(ptrdiff_t)stride + 4*x)) = ((ta << 16) & 0xff000000) |
((tr >> 8) & 0xff0000) | ((tg >> 16) & 0xff00) | (tb >> 24);
}
}
diff --git a/src/cairo-png.c b/src/cairo-png.c
index 562b743..aa8c227 100644
--- a/src/cairo-png.c
+++ b/src/cairo-png.c
@@ -673,7 +673,7 @@ read_png (struct png_read_closure_t *png_closure)
}
for (i = 0; i < png_height; i++)
- row_pointers[i] = &data[i * stride];
+ row_pointers[i] = &data[i * (ptrdiff_t)stride];
png_read_image (png, row_pointers);
png_read_end (png, info);
diff --git a/src/cairo-script-surface.c b/src/cairo-script-surface.c
index ea0117d..91e4baa 100644
--- a/src/cairo-script-surface.c
+++ b/src/cairo-script-surface.c
@@ -1202,7 +1202,8 @@ static cairo_status_t
_write_image_surface (cairo_output_stream_t *output,
const cairo_image_surface_t *image)
{
- int stride, row, width;
+ int row, width;
+ ptrdiff_t stride;
uint8_t row_stack[CAIRO_STACK_BUFFER_SIZE];
uint8_t *rowdata;
uint8_t *data;
--
2.1.4

View File

@ -4,18 +4,16 @@
# Depends on: fontconfig, xorg-libxext, xorg-libxrender, xorg-libpixman, xorg-xcb-util, glib
name=cairo
version=1.15.10
version=1.15.12
release=1
source=(https://cairographics.org/snapshots/cairo-$version.tar.xz
cairo-xlib-endianness.patch
cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff
0001-image-prevent-invalid-ptr-access-for-4GB-images.patch)
cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff)
build() {
cd $name-$version
patch -p1 -i $SRC/cairo-xlib-endianness.patch
patch -p1 -i $SRC/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff
#patch -p1 -i $SRC/0001-image-prevent-invalid-ptr-access-for-4GB-images.patch
./configure --prefix=/usr \
--enable-xcb=yes \