Author: ken
Date: Thu Feb  5 20:00:57 2015
New Revision: 3138

Log:
Extend the cairo upstream fixes.

Added:
   trunk/cairo/cairo-1.14.0-upstream_fixes-2.patch

Added: trunk/cairo/cairo-1.14.0-upstream_fixes-2.patch
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ trunk/cairo/cairo-1.14.0-upstream_fixes-2.patch     Thu Feb  5 20:00:57 
2015        (r3138)
@@ -0,0 +1,88 @@
+Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
+Date: 2015-02-05
+Initial Package Version: 1.14.0
+Upstream Status: Applied
+Origin: See below
+Description: Consolidated fixes for crashes, particularly relevant to evince 
and
+inkscape.
+(1.) from Bryce Harrington, upstream commit 
5c82d91a5e15d29b1489dcb413b24ee7fdf59934
+(2.) from Massimo Valentini, upstream commit 
2de69581c28bf115852037ca41eba13cb7335976
+(3,4.) from Adam Jackson, upstream commits 
a03f2ff72054c9530f98738aac729354a3f56102
+     and 3cf862f6d973755cd9824c2224fbe0a623c47ff1.
+
+diff -Naur a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
+--- a/src/cairo-image-compositor.c     2014-10-14 02:46:33.000000000 +0100
++++ b/src/cairo-image-compositor.c     2015-02-05 21:07:48.066068516 +0000
+@@ -2242,10 +2242,10 @@
+                                    spans[0].x, y, len, 1, r->u.fill.pixel);
+                   } else {
+                       uint32_t *d = (uint32_t*)(r->u.fill.data + 
r->u.fill.stride*y + spans[0].x*4);
+-                      while (len--)
++                      while (len-- > 0)
+                           *d++ = r->u.fill.pixel;
+                   }
+-              } else while (len--) {
++              } else while (len-- > 0) {
+                   *d = lerp8x4 (r->u.fill.pixel, a, *d);
+                   d++;
+               }
+diff -Naur a/src/cairo-tor-scan-converter.c b/src/cairo-tor-scan-converter.c
+--- a/src/cairo-tor-scan-converter.c   2014-10-14 02:46:33.000000000 +0100
++++ b/src/cairo-tor-scan-converter.c   2015-02-05 21:07:28.265583699 +0000
+@@ -1167,8 +1167,8 @@
+ 
+       if (e->dy) {
+           struct quorem x = e->x;
+-          x.quo += e->dxdy_full.quo - e->dxdy.quo/2;
+-          x.rem += e->dxdy_full.rem - e->dxdy.rem/2;
++          x.quo += e->dxdy_full.quo;
++          x.rem += e->dxdy_full.rem;
+           if (x.rem < 0) {
+               x.quo--;
+               x.rem += e->dy;
+diff -Naur a/src/cairo-xcb-surface-render.c b/src/cairo-xcb-surface-render.c
+--- a/src/cairo-xcb-surface-render.c   2014-10-14 02:46:33.000000000 +0100
++++ b/src/cairo-xcb-surface-render.c   2015-02-05 21:07:43.257950790 +0000
+@@ -4467,6 +4467,9 @@
+           const uint8_t *d;
+           uint8_t *new, *n;
+ 
++          if (c == 0)
++              break;
++
+           new = malloc (c);
+           if (unlikely (new == NULL)) {
+               status = _cairo_error (CAIRO_STATUS_NO_MEMORY);
+@@ -4495,6 +4498,9 @@
+           const uint32_t *d;
+           uint32_t *new, *n;
+ 
++          if (c == 0)
++              break;
++
+           new = malloc (4 * c);
+           if (unlikely (new == NULL)) {
+               status = _cairo_error (CAIRO_STATUS_NO_MEMORY);
+diff -Naur a/src/cairo-xlib-render-compositor.c 
b/src/cairo-xlib-render-compositor.c
+--- a/src/cairo-xlib-render-compositor.c       2013-11-19 22:04:57.000000000 
+0000
++++ b/src/cairo-xlib-render-compositor.c       2015-02-05 21:07:38.857843053 
+0000
+@@ -1287,6 +1287,9 @@
+           unsigned char   *d;
+           unsigned char   *new, *n;
+ 
++          if (c == 0)
++              break;
++
+           new = malloc (c);
+           if (!new) {
+               status = _cairo_error (CAIRO_STATUS_NO_MEMORY);
+@@ -1312,6 +1315,9 @@
+           const uint32_t *d;
+           uint32_t *new, *n;
+ 
++          if (c == 0)
++              break;
++
+           new = malloc (4 * c);
+           if (unlikely (new == NULL)) {
+               status = _cairo_error (CAIRO_STATUS_NO_MEMORY);
-- 
http://lists.linuxfromscratch.org/listinfo/patches
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to