Hello community,

here is the log from the commit of package cairo for openSUSE:Factory checked 
in at 2013-07-11 13:27:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cairo (Old)
 and      /work/SRC/openSUSE:Factory/.cairo.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cairo"

Changes:
--------
--- /work/SRC/openSUSE:Factory/cairo/cairo.changes      2013-05-28 
07:29:09.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.cairo.new/cairo.changes 2013-07-11 
13:27:28.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Jul  8 18:49:31 CEST 2013 - [email protected]
+
+- Add cairo-reduce-buddy-assertion.patch: Fix eog crash on
+  assertion, after pressing Next (bnc#828074).
+
+-------------------------------------------------------------------

New:
----
  cairo-reduce-buddy-assertion.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cairo.spec ++++++
--- /var/tmp/diff_new_pack.kdZ1rb/_old  2013-07-11 13:27:29.000000000 +0200
+++ /var/tmp/diff_new_pack.kdZ1rb/_new  2013-07-11 13:27:29.000000000 +0200
@@ -30,6 +30,8 @@
 Source99:       baselibs.conf
 # PATCH-FIX-UPSTREAM cairo-modules-no-version.patch fdo#29319 
[email protected] -- Build modules with -module -avoid-version.
 Patch0:         cairo-modules-no-version.patch
+# PATCH-FIX-UPSTREAM cairo-reduce-buddy-assertion.patch bnc#828074 
[email protected] -- Fix assert crash on unaligned memory, taken from git, commit 
01a8bf0
+Patch1:         cairo-reduce-buddy-assertion.patch
 # These libraries are needed only for tests.
 # Do not enable tests in build systems, it causes build loop!
 #BuildRequires:  librsvg-devel poppler-devel
@@ -148,6 +150,7 @@
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 %build
 # Needed by patch0

++++++ cairo-reduce-buddy-assertion.patch ++++++
>From 01a8bf01c6508a4fea8d40371c3049e7a2f7908a Mon Sep 17 00:00:00 2001
From: Chris Wilson <[email protected]>
Date: Fri, 15 Mar 2013 09:08:00 +0000
Subject: [PATCH] mempool: Reduce an assert into an error return for
 get_buddy()

If we ask for a buddy that is outside of our allocation that is an
error that should not happen with a power-of-two allocated zone...
However, since it has been seen in the wild, we can safely return that
there is no buddy rather than die in a too-late assert.

Reported-by: Anton Eliasson <[email protected]>
Signed-off-by: Chris Wilson <[email protected]>
---
 src/cairo-mempool.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/cairo-mempool.c b/src/cairo-mempool.c
index 96e4a62..751ede3 100644
--- a/src/cairo-mempool.c
+++ b/src/cairo-mempool.c
@@ -157,7 +157,8 @@ get_buddy (cairo_mempool_t *pool, size_t offset, int bits)
 {
     struct _cairo_memblock *block;
 
-    assert (offset + (1 << bits) <= pool->num_blocks);
+    if (offset + (1 << bits) >= pool->num_blocks)
+       return NULL; /* invalid */
 
     if (BITTEST (pool, offset + (1 << bits) - 1))
        return NULL; /* buddy is allocated */
-- 
1.8.1.4

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to