[cairo-bugs] [Bug 9906] evolution crash to _cairo_gstate_backend_to_user()

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Mar 2 03:54:04 PST 2007


cworth at cworth.org changed:

           What    |Removed                     |Added
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

------- Comment #2 from cworth at cworth.org  2007-03-02 03:53 PST -------
(In reply to comment #1)
> Could you break on _cairo_error which should show you where the INVALID_RESTORE
> is first happening, and then step through to see how you're getting from there
> to the crash?

Oh, never mind. It's clear enough from the existing backtrace already. Any
INVALID_RESTORE condition was leaving a NULL gstate and almost any cairo_get_*
call would dererference that and trigger the crash.

I augmented cairo's test suite to exercise the crash, then I fixed the bug.

You can see the commit I just pushed out here:


This is currently available in cairo 1.3.15 as made available in git, and will
be pushed out very shortly in the cairo 1.4 release.

Meanwhile, there's still a bug in evolution somewhere that's leading to the
INVALID_RESTORE in the first place, (that is, calling cairo_restore without a
matching call to cairo_save). This fix will prevent the crash, and will instead
replace it with cairo simply refusing to draw anything after the invalid
restore state. So you'll still want to fix that.


Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.

More information about the cairo-bugs mailing list