summaryrefslogtreecommitdiffstats
path: root/gfx/cairo/17-active-edges-crash.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/cairo/17-active-edges-crash.patch')
-rw-r--r--gfx/cairo/17-active-edges-crash.patch23
1 files changed, 23 insertions, 0 deletions
diff --git a/gfx/cairo/17-active-edges-crash.patch b/gfx/cairo/17-active-edges-crash.patch
new file mode 100644
index 0000000000..809d07df65
--- /dev/null
+++ b/gfx/cairo/17-active-edges-crash.patch
@@ -0,0 +1,23 @@
+diff --git a/gfx/cairo/cairo/src/cairo-polygon-intersect.c b/gfx/cairo/cairo/src/cairo-polygon-intersect.c
+--- a/gfx/cairo/cairo/src/cairo-polygon-intersect.c
++++ b/gfx/cairo/cairo/src/cairo-polygon-intersect.c
+@@ -1167,7 +1167,7 @@ active_edges (cairo_bo_edge_t *left,
+ } while (1);
+
+ right = left->next;
+- do {
++ while (right) {
+ if unlikely ((right->deferred.other))
+ edges_end (right, top, polygon);
+
+@@ -1179,7 +1179,9 @@ active_edges (cairo_bo_edge_t *left,
+ }
+
+ right = right->next;
+- } while (1);
++ };
++ if (! right)
++ return;
+
+ edges_start_or_continue (left, right, top, polygon);
+