Summary: | nautilus crashed with SIGSEGV in cairo_surface_get_font_options() | ||
---|---|---|---|
Product: | cairo | Reporter: | Pedro Villavicencio <pvillavi> |
Component: | general | Assignee: | Emmanuel Pacaud <emmanuel.pacaud> |
Status: | RESOLVED FIXED | QA Contact: | cairo-bugs mailing list <cairo-bugs> |
Severity: | normal | ||
Priority: | medium | ||
Version: | 1.6.4 | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Pedro Villavicencio
2008-08-12 13:05:19 UTC
My educated guess is that 0xb78086a0 is an error surface, on which we attempt to initialize the font_options, hence the SIGSEGV. Can you test this? (If I am right, you still won't see the desired result but the crash should be resolved.) commit c73b3e43e120065e40d8fc48c9bdbd88ebe8ab40 Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Tue Aug 12 21:21:20 2008 +0100 [cairo-surface] Check for the error surface in _get_font_options() cairo_surface_get_font_options() has the side effect of initialising the font options on the surface, but fails to check that the surface is valid first. Therefore if we are passed a read-only error object, we will trigger a segmentation fault. Most likely this is the bug behind: http://bugs.freedesktop.org/show_bug.cgi?id=17096. Verified that the above patch fixed the problem in that it at least prevents the segfault and the thumbnail even works. Verified by compiling the cairo from the commit just before this one, and then running firefox with the compiled library LD_LIBRARY_PATH'd in. doing File->Open File, and navigating to the directory with the bad file. With the commit before this, firefox crashes.. with this fix, it works. So, this fixes the bug in cairo, but should error surfaces be getting down this far? i.e., does this point to another bug in librsvg or pango? Thanks for the fix. Given the identification that it was indeed an error surface that we tried to write to, it is indicative that the caller could check for an error early (if they so desire) although they are free to just check for any errors after all the operations are completion. |
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.