forked from pool/cairo
Dominique Leuenberger
3ed4c8a024
- Fix another segfault in active_edges (fdo#59098) cairo-active_edges.patch OBS-URL: https://build.opensuse.org/request/show/340746 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/cairo?expand=0&rev=97
19 lines
566 B
Diff
19 lines
566 B
Diff
https://bugs.freedesktop.org/show_bug.cgi?id=59098
|
|
--- cairo-1.14.2.orig/src/cairo-polygon-intersect.c
|
|
+++ cairo-1.14.2/src/cairo-polygon-intersect.c
|
|
@@ -1236,11 +1236,10 @@ active_edges (cairo_bo_edge_t *left,
|
|
edges_end (right, top, polygon);
|
|
|
|
winding[right->a_or_b] += right->edge.dir;
|
|
- if (is_zero (winding)) {
|
|
- if (right->next == NULL ||
|
|
- ! edges_colinear (right, right->next))
|
|
+ if (!right->next)
|
|
+ return;
|
|
+ if (is_zero (winding) && ! edges_colinear (right, right->next))
|
|
break;
|
|
- }
|
|
|
|
right = right->next;
|
|
} while (1);
|