<div dir="ltr"><div><div><div><div>Sorry, this hack was not intended to be a fix. I needed it to make our software run and e-mailing it was an improper way to describe that the assumption of the code on the ascending order of the scans fails.<br><br></div>After adding the following code at the beginning of cell_list_alloc (cairo-tor-scan-converter.c):<br>    if (cells->head.next != &cells->tail && x < tail->x)<br>       DebugBreak();<br><br></div>I found out that the function cell_list_find_pair (cairo-tor-scan-converter.c) breaks the order because cells->cursor from the previous call points to the value which exceeds x1 of the actual call.<br><br></div>I do not know the details of the scan generation algorithm, so not sure how it was intended to be used, but if cells->cursor is a cached iterator helping to find the proper position of the overlapping row slices in the ascending order, I would expect that it should be set to pair.cell1 instead of pair.cell2 at the end of cell_list_find_pair.<br><br></div>With best regards,<br>Ilya<br></div><div class="gmail_extra"><br><div class="gmail_quote">On 6 December 2014 at 13:12, Chris Wilson <span dir="ltr"><<a href="mailto:chris@chris-wilson.co.uk" target="_blank">chris@chris-wilson.co.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Fri, Dec 05, 2014 at 07:16:46PM -0800, Bryce Harrington wrote:<br>
>  src/cairo-image-compositor.c |    4 ++--<br>
>  1 file changed, 2 insertions(+), 2 deletions(-)<br>
><br>
> New commits:<br>
> commit 5c82d91a5e15d29b1489dcb413b24ee7fdf59934<br>
> Author: Bryce Harrington <<a href="mailto:bryce@osg.samsung.com">bryce@osg.samsung.com</a>><br>
> Date:   Wed Dec 3 19:28:15 2014 -0800<br>
><br>
>     image: Fix crash in _fill_xrgb32_lerp_opaque_spans<br>
><br>
>     If a span length is negative don't go out of bounds processing the fill<br>
>     data.<br>
<br>
This is a bogus patch. The root cause is that span lengths can not be<br>
negactive. Please revert and fix this properly, that will then fix all<br>
occurrences.<br>
-Chris<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Chris Wilson, Intel Open Source Technology Centre<br>
--<br>
cairo mailing list<br>
<a href="mailto:cairo@cairographics.org">cairo@cairographics.org</a><br>
<a href="http://lists.cairographics.org/mailman/listinfo/cairo" target="_blank">http://lists.cairographics.org/mailman/listinfo/cairo</a></font></span></blockquote></div><br></div>