diff options
Diffstat (limited to 'gfx/cairo/17-active-edges-crash.patch')
-rw-r--r-- | gfx/cairo/17-active-edges-crash.patch | 23 |
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); + |