Summary: | Filling shapes a lot arger than window size make cairo crawl | ||
---|---|---|---|
Product: | cairo | Reporter: | Leonard Ritter <paniq> |
Component: | xlib backend | Assignee: | Carl Worth <cworth> |
Status: | RESOLVED FIXED | QA Contact: | cairo-bugs mailing list <cairo-bugs> |
Severity: | normal | ||
Priority: | high | CC: | sven.herzberg |
Version: | 1.0.2 | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Leonard Ritter
2005-10-13 11:54:51 UTC
expected is no difference to filling a rectangle from 0,0 to 640,480, relating to time. i believe that given far more malicious parameters, this bug could be used to lock up a machine. <mpj> paniq: in that case could cairo do anything better than clip to the window bounds? <paniq> it could triangulate the shape and clip the triangles. still waiting for this to be fixed ;) The tesselator current discards all edges above or below the clip area - which vastly speeds up this particular test case. The final trapezoids are again adjusted to fit within the limits so no more pixels are filled than required and I do not see a significant difference between filling the large arc and just painting the window. As part of my self-intersecting work, I have implemented full-clipping of edges and this generates just a single trapezoid covering the entire window. As it stands I believe 1.8.0 does not suffer from this DoS, and I expect it to only improve in future (either through clipping of edges or Janoos' spans work). |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.