17-active-edges-crash.patch (646B)
1 diff --git a/gfx/cairo/cairo/src/cairo-polygon-intersect.c b/gfx/cairo/cairo/src/cairo-polygon-intersect.c 2 --- a/gfx/cairo/cairo/src/cairo-polygon-intersect.c 3 +++ b/gfx/cairo/cairo/src/cairo-polygon-intersect.c 4 @@ -1167,7 +1167,7 @@ active_edges (cairo_bo_edge_t *left, 5 } while (1); 6 7 right = left->next; 8 - do { 9 + while (right) { 10 if unlikely ((right->deferred.other)) 11 edges_end (right, top, polygon); 12 13 @@ -1179,7 +1179,9 @@ active_edges (cairo_bo_edge_t *left, 14 } 15 16 right = right->next; 17 - } while (1); 18 + }; 19 + if (! right) 20 + return; 21 22 edges_start_or_continue (left, right, top, polygon);