Bug 49089 - evince crashes with "*** buffer overflow detected ***: evince terminated" while trying to print
Summary: evince crashes with "*** buffer overflow detected ***: evince terminated" whi...
Status: RESOLVED FIXED
Alias: None
Product: cairo
Classification: Unclassified
Component: pdf backend (show other bugs)
Version: 1.12.0
Hardware: Other All
: medium normal
Assignee: Adrian Johnson
QA Contact: cairo-bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-04-23 13:45 UTC by Dominique Leuenberger
Modified: 2012-04-23 14:17 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Fix the issue. (1.00 KB, text/plain)
2012-04-23 13:45 UTC, Dominique Leuenberger
Details

Description Dominique Leuenberger 2012-04-23 13:45:03 UTC
Created attachment 60497 [details]
Fix the issue.

Originally reported as downstream bug:
https://bugzilla.novell.com/show_bug.cgi?id=758422

_cairo_pdf_surface_add_source_surface allocates unique_id with size
unique_id_length but then copies surface_key.unique_id_length into it.

This causes e.g. evince to crash predictably while trying to print with:
  *** buffer overflow detected ***: evince terminat
Comment 1 Chris Wilson 2012-04-23 14:17:18 UTC
commit f736cd144305f7c9147912f6ec081962b3191e3d
Author: Jeff Mahoney <jeffm@suse.com>
Date:   Mon Apr 23 22:04:48 2012 +0100

    pdf: Fix wrong allocation in _cairo_pdf_surface_add_source_surface
    
    _cairo_pdf_surface_add_source_surface allocates unique_id with
    size unique_id_length but then copies surface_key.unique_id_length into it.
    
    This causes e.g. evince to crash predictably while trying to print with:
    *** buffer overflow detected ***: evince terminated
    
    We should be using surface_key.unique_id_length instead.
    
    Reported-by: Dominique Leuenberger <dominique-freedesktop.org@leuenberger.ne
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=49089
    Signed-off-by: Jeff Mahoney <jeffm@suse.com>


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.