reassign 690799 libcairo2
retitle 690799 cairo null pointer dereference with polygon intersections
tag 690799 + patch
found 690799 1.12.2-2
tag 690799 + pending
user [email protected]
usertags bsp-2013-01-gb-cambridge
thanks

I've implemented a trivial patch to avoid the null pointer deference
without pulling in other changes from upstream. I've tested with the
PDF from the bug report and I get no problems, no crashes and no
apparent rendering issues.

The same PDF was tested with libcairo2 1.12.10 from experimental which
also showed no crashes and no rendering issues. The patch for this bug
is not drawn from the upstream changes, it merely protects against the
null pointer deference as there are too many other changes between
1.12.2 and 1.12.10.

As this RC bug has been open for some time, I'll be uploading the NMU
to unstable and it has already been initially reviewed for an unblock.


-- 


Neil Williams
=============
http://www.linux.codehelp.co.uk/

diffstat for cairo-1.12.2 cairo-1.12.2

 changelog                          |    7 +++++++
 patches/intersect-dereference.diff |   13 +++++++++++++
 patches/series                     |    1 +
 3 files changed, 21 insertions(+)

diff -Nru cairo-1.12.2/debian/changelog cairo-1.12.2/debian/changelog
--- cairo-1.12.2/debian/changelog	2012-05-17 12:23:08.000000000 +0100
+++ cairo-1.12.2/debian/changelog	2013-01-26 23:22:16.000000000 +0000
@@ -1,3 +1,10 @@
+cairo (1.12.2-2.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * (Closes: #690799)  evince crashes with a certain PDF file
+
+ -- Neil Williams <[email protected]>  Sat, 26 Jan 2013 23:22:12 +0000
+
 cairo (1.12.2-2) unstable; urgency=low
 
   * debian/libcairo2-udeb.install:
diff -Nru cairo-1.12.2/debian/patches/intersect-dereference.diff cairo-1.12.2/debian/patches/intersect-dereference.diff
--- cairo-1.12.2/debian/patches/intersect-dereference.diff	1970-01-01 01:00:00.000000000 +0100
+++ cairo-1.12.2/debian/patches/intersect-dereference.diff	2013-01-26 23:09:04.000000000 +0000
@@ -0,0 +1,13 @@
+Index: cairo-1.12.2/src/cairo-polygon-intersect.c
+===================================================================
+--- cairo-1.12.2.orig/src/cairo-polygon-intersect.c	2012-04-19 13:17:58.000000000 +0100
++++ cairo-1.12.2/src/cairo-polygon-intersect.c	2013-01-26 23:08:54.000000000 +0000
+@@ -1231,6 +1231,8 @@
+ 	    } while (1);
+ 
+ 	    right = left->next;
++	    if (!right)
++		    return;
+ 	    do {
+ 		if unlikely ((right->deferred.other))
+ 		    edges_end (right, top, polygon);
diff -Nru cairo-1.12.2/debian/patches/series cairo-1.12.2/debian/patches/series
--- cairo-1.12.2/debian/patches/series	2012-04-30 13:25:25.000000000 +0100
+++ cairo-1.12.2/debian/patches/series	2013-01-26 23:08:15.000000000 +0000
@@ -3,3 +3,4 @@
 03_export-symbols.patch
 05-flto.patch
 06_hurd-map-noreserve.patch
+intersect-dereference.diff

Attachment: pgp8yJWMdOMdB.pgp
Description: PGP signature

Reply via email to