diff options
author | Ludovic Courtès <[email protected]> | 2015-09-26 15:14:53 +0200 |
---|---|---|
committer | Ludovic Courtès <[email protected]> | 2015-09-26 15:14:53 +0200 |
commit | e1556533d3e57950417b2e35a68e95c65fee5042 (patch) | |
tree | 41d67b065c7828e164af83254fb447849d9e880d /gnu/packages/patches/pixman-pointer-arithmetic.patch | |
parent | 5d8d8f3b0a07edb3bd435830b076749f906537d8 (diff) | |
parent | 92f1cefb74f6092c0c70f93140824ab806086272 (diff) |
Merge branch 'core-updates'
Diffstat (limited to 'gnu/packages/patches/pixman-pointer-arithmetic.patch')
-rw-r--r-- | gnu/packages/patches/pixman-pointer-arithmetic.patch | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gnu/packages/patches/pixman-pointer-arithmetic.patch b/gnu/packages/patches/pixman-pointer-arithmetic.patch new file mode 100644 index 0000000000..d34e6632a0 --- /dev/null +++ b/gnu/packages/patches/pixman-pointer-arithmetic.patch @@ -0,0 +1,15 @@ +Fix <https://bugs.freedesktop.org/show_bug.cgi?id=92027> whereby +an arithemitic overflow could occur while doing pointer arithmetic, +leading pixman to use an invalid address as the destination buffer. + +--- pixman-0.32.6/pixman/pixman-general.c 2015-09-21 15:14:34.695981325 +0200 ++++ pixman-0.32.6/pixman/pixman-general.c 2015-09-21 15:19:48.898355548 +0200 +@@ -144,8 +144,7 @@ general_composite_rect (pixman_implemen + mask_buffer = ALIGN (src_buffer + width * Bpp); + dest_buffer = ALIGN (mask_buffer + width * Bpp); + +- if (ALIGN (dest_buffer + width * Bpp) > +- scanline_buffer + sizeof (stack_scanline_buffer)) ++ if ((width + 1) * Bpp * 3 > sizeof (stack_scanline_buffer)) + { + scanline_buffer = pixman_malloc_ab_plus_c (width, Bpp * 3, 32 * 3); |