Bug 88293

Summary: self-copy crashes for a stack overflow with svg12 backend
Product: cairo Reporter: Massimo <sixtysix>
Component: pdf backendAssignee: Adrian Johnson <ajohnson>
Status: RESOLVED MOVED QA Contact: cairo-bugs mailing list <cairo-bugs>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: quick hack

Description Massimo 2015-01-11 15:09:05 UTC
Created attachment 112093 [details]
quick hack

The problem is that with a paginated surface (pdf, svg)
 _cairo_recording_surface_break_self_copy_loop flushes
the internal recording surface, but not the parent which is
the snapshot_of of the paint source pattern. When later
detach_snapshots is invoked for the recording_surface
it creates a paint command that uses the same recording
surface as source and this results in a memory leak for
the pdf backend and an infinite recursion for the svg12
backend.

The attached quick hack flushes the pattern->surface before
adding the paint-command to the recording surface commands.


Reproduction step

(cd test && CAIRO_TEST_TARGET=pdf,svg12 .libs/cairo-test-suite -f self-copy)
Comment 1 GitLab Migration User 2018-08-25 13:54:39 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/cairo/cairo/issues/260.

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.