The bug has been opened on https://launchpad.net/bugs/94903 "Binary package hint: evince Situation : I opened the 42.5 MB Cover_x86.pdf (obtainable from http://clete2.com/gentoocover/, it's a Gentoo DVD Cover) and Evince immediately crashed. Steps to reproduce : probably opening the .pdf an x number of times, it opened just fine the second time around. Version information : Evince 0.8.0, Poppler 0.5.4 (cairo) ... . Thread 2 (process 17501): #0 0xb76f68f0 in FlateStream::getChar (this=0x83c1e58) at Stream.cc:3941 c = <value optimized out> #1 0xb76f2320 in ImageStream::getLine (this=0x8364a68) at Stream.cc:381 buf = <value optimized out> bits = <value optimized out> c = <value optimized out> i = 9338 #2 0xb77be0a2 in CairoOutputDev::drawImage (this=0x8312e90, state=0x83bed40, ref=0xb6997c94, str=0x83c1e58, width=4271, height=2876, colorMap=0x83ca398, maskColors=0x0, inlineImg=0) at CairoOutputDev.cc:843 buffer = (unsigned char *) 0xb256a008 "\221¶Í" image = <value optimized out> pattern = <value optimized out> y = 15 imgStr = (ImageStream *) 0x8364a68 pix = <value optimized out> i = <value optimized out> matrix = {xx = 5.2898396800107751e-269, yx = -1.1155082287757394e-45, xy = -1.8081873687300524e-41, yy = 4.321423660979218e-269, x0 = -1.2866916418111052e-41, y0 = -1.8081874039428065e-41} #3 0xb76a98f6 in Gfx::doImage (this=0x8366688, ref=0xb6997c94, str=0x83c1e58, inlineImg=0) at Gfx.cc:3223 dict = <value optimized out> maskDict = <value optimized out> width = 4271 height = 2876 bits = 8 maskBits = <value optimized out> csMode = streamCSNone mask = 0 invert = <value optimized out> colorSpace = (class GfxColorSpace *) 0x83b29b8 maskColorSpace = <value optimized out> colorMap = (GfxImageColorMap *) 0x83ca398 maskColorMap = <value optimized out> maskObj = {type = objNull, {booln = -1208168460, intg = -1208168460, real = -1.9287042025283492e-41, string = 0xb7fccff4, name = 0xb7fccff4 "(\237\001", array = 0xb7fccff4, dict = 0xb7fccff4, stream = 0xb7fccff4, ref = {num = -1208168460, gen = -1216683560}, cmd = 0xb7fccff4 "(\237\001"}} smaskObj = {type = objNull, {booln = -1218064204, intg = -1218064204, real = -7.6653035788848368e-42, string = 0xb765d0b4, name = 0xb765d0b4 "", array = 0xb765d0b4, dict = 0xb765d0b4, stream = 0xb765d0b4, ref = {num = -1218064204, gen = -1218093532}, cmd = 0xb765d0b4 ""}} maskColors = {4096, 0, 320, 160, -1223096576, 0, 385, 0, 44589056, 0, 0, 44593152, 0, -1223880783, 0, -1231455672, -1231455648, -1231455640, 13, 138157336, -1223004172, -1223880783, 104, 40, -1223096576, -1222999776, 138145712, 138146192, 138145712, -1223880783, 24, -1208239397, -1223096676, 5822, -1226342412, 138146192, 0, -1223878463, 584, 104, -1223096576, -1208168460, -1230134008, 26, -1231455448, -1208238270, 40, 0, -1223096676, -1222999776, 153, 211026, -1231455500, -1231455500, -1231455260, -837507378, -1216684000, 79, -1218106812, -1218114144, -1218044048, -837507378, -1218044020, -1218044044} maskWidth = <value optimized out> maskHeight = <value optimized out> maskInvert = <value optimized out> maskStr = <value optimized out> obj1 = {type = objNone, {booln = 138095048, intg = 138095048, real = 4.321467906649489e-269, string = 0x83b29c8, name = 0x83b29c8 "", array = 0x83b29c8, dict = 0x83b29c8, stream = 0x83b29c8, ref = {num = 138095048, gen = 137811072}, cmd = 0x83b29c8 ""}} obj2 = {type = objNone, {booln = 0, intg = 0, real = 2.1219957909652723e-314, string = 0x0, name = 0x0, array = 0x0, dict = 0x0, stream = 0x0, ref = {num = 0, gen = 1}, cmd = 0x0}} i = <value optimized out> #4 0xb76ac451 in Gfx::opXObject (this=0x8366688, args=0xb6997d70, numArgs=1) at Gfx.cc:2902 obj1 = {type = objStream, {booln = 138157656, intg = 138157656, real = -1.1161412188990108e-45, string = 0x83c1e58, name = 0x83c1e58 "(%y·\001", array = 0x83c1e58, dict = 0x83c1e58, stream = 0x83c1e58, ref = {num = 138157656, gen = -1231454984}, cmd = 0x83c1e58 "(%y·\001"}} obj2 = {type = objName, {booln = 137775680, intg = 137775680, real = 4.3214679064347181e-269, string = 0x8364a40, name = 0x8364a40 "Image", array = 0x8364a40, dict = 0x8364a40, stream = 0x8364a40, ref = {num = 137775680, gen = 137811072}, cmd = 0x8364a40 "Image"}} obj3 = {type = objNone, {booln = 137778924, intg = 137778924, real = -1.1161198367224087e-45, string = 0x83656ec, name = 0x83656ec "\n", array = 0x83656ec, dict = 0x83656ec, stream = 0x83656ec, ref = {num = 137778924, gen = -1231455016}, cmd = 0x83656ec "\n"}} refObj = {type = objRef, {booln = 24, intg = 24, real = 1.1857575500189917e-322, string = 0x18, name = 0x18 <Address 0x18 out of bounds>, array = 0x18, dict = 0x18, stream = 0x18, ref = {num = 24, gen = 0}, cmd = 0x18 <Address 0x18 out of bounds>}} opiDict = {type = objNull, {booln = 137812051, intg = 137812051, real = 3.2523307061869766e-269, string = 0x836d853, name = 0x836d853 "", array = 0x836d853, dict = 0x836d853, stream = 0x836d853, ref = {num = 137812051, gen = 137440912}, cmd = 0x836d853 ""}} #5 0xb76a736d in Gfx::execOp (this=0x8366688, cmd=0xb6997dd0, args=0xb6997d70, numArgs=<value optimized out>) at Gfx.cc:712 op = (Operator *) 0xb77a2b30 name = 0x83b2a18 "Do" argPtr = (Object *) 0xb6997d70 i = 1 #6 0xb76a752b in Gfx::go (this=0x8366688, topLevel=0) at Gfx.cc:580 obj = {type = objCmd, {booln = 138095128, intg = 138095128, real = 433.0214922247992, string = 0x83b2a18, name = 0x83b2a18 "Do", array = 0x83b2a18, dict = 0x83b2a18, stream = 0x83b2a18, ref = {num = 138095128, gen = 1081806936}, cmd = 0x83b2a18 "Do"}} args = {{type = objName, {booln = 138095112, intg = 138095112, real = 433.02149222479829, string = 0x83b2a08, name = 0x83b2a08 "Im0", array = 0x83b2a08, dict = 0x83b2a08, stream = 0x83b2a08, ref = {num = 138095112, gen = 1081806936}, cmd = 0x83b2a08 "Im0"}}, {type = objNone, {booln = 0, intg = 0, real = 1025.0322265625, string = 0x0, name = 0x0, array = 0x0, dict = 0x0, stream = 0x0, ref = {num = 0, gen = 1083180065}, cmd = 0x0}}, {type = objNone, {booln = 0, intg = 0, real = 1025.0322265625, string = 0x0, name = 0x0, array = 0x0, dict = 0x0, stream = 0x0, ref = {num = 0, gen = 1083180065}, cmd = 0x0}}, {type = objNone, {booln = -1553060174, intg = -1553060174, real = -690.24298750000003, string = 0xa36e2eb2, name = 0xa36e2eb2 <Address 0xa36e2eb2 out of bounds>, array = 0xa36e2eb2, dict = 0xa36e2eb2, stream = 0xa36e2eb2, ref = { num = -1553060174, gen = -1064988175}, cmd = 0xa36e2eb2 <Address 0xa36e2eb2 out of bounds>}}, {type = objNone, {booln = -2115075544, intg = -2115075544, real = -861.23266969999986, string = 0x81ee8228, name = 0x81ee8228 <Address 0x81ee8228 out of bounds>, array = 0x81ee8228, dict = 0x81ee8228, stream = 0x81ee8228, ref = { num = -2115075544, gen = -1064637988}, cmd = 0x81ee8228 <Address 0x81ee8228 out of bounds>}}, {type = objNone, {booln = 990879878, intg = 990879878, real = 433.02154069999995, string = 0x3b0fa086, name = 0x3b0fa086 <Address 0x3b0fa086 out of bounds>, array = 0x3b0fa086, dict = 0x3b0fa086, stream = 0x3b0fa086, ref = { num = 990879878, gen = 1081806936}, cmd = 0x3b0fa086 <Address 0x3b0fa086 out of bounds>}}, {type = objNone, {booln = -1216793644, intg = -1216793644, real = 4.2285586955225275e-269, string = 0xb77933d4, name = 0xb77933d4 "t \024", array = 0xb77933d4, dict = 0xb77933d4, stream = 0xb77933d4, ref = {num = -1216793644, gen = 137778904}, cmd = 0xb77933d4 "t \024"}}, {type = objNone, {booln = -1231454744, intg = -1231454744, real = -1.1120609988449128e-41, string = 0xb6997de8, name = 0xb6997de8 "(~\231¶¯~j·\210f6\b", array = 0xb6997de8, dict = 0xb6997de8, stream = 0xb6997de8, ref = {num = -1231454744, gen = -1217462290}, cmd = 0xb6997de8 "(~\231¶¯~j·\210f6\b"}}} numArgs = 1 i = 6 lastAbortCheck = 0 timer = (GooTimer *) 0x8364d58 #7 0xb76a7eaf in Gfx::display (this=0x8366688, obj=0xb6998028, topLevel=0) at Gfx.cc:543 obj2 = {type = objNone, {booln = 0, intg = 0, real = 1.2370173889166283e-269, string = 0x0, name = 0x0, array = 0x0, dict = 0x0, stream = 0x0, ref = {num = 0, gen = 135930864}, cmd = 0x0}} i = <value optimized out> #8 0xb76ab813 in Gfx::doForm1 (this=0x8366688, str=0xb6998028, resDict=0x833cf18, matrix=0xb6997f28, bbox=0xb6997ef8) at Gfx.cc:3464 oldParser = (Parser *) 0x82c7510 oldBaseMatrix = {0.15403128760529483, 0, 0, -0.15403128760529483, -0, 89.135287605294849} i = <value optimized out> #9 0xb76ac19a in Gfx::doForm (this=0x8366688, str=0xb6998028) at Gfx.cc:3304 dict = (Dict *) 0x8364f88 matrixObj = {type = objNone, {booln = 137605896, intg = 137605896, real = 6.7986345878803404e-316, string = 0x833b308, name = 0x833b308 "xR0\bhÎ3\b\b", array = 0x833b308, dict = 0x833b308, stream = 0x833b308, ref = {num = 137605896, gen = 0}, cmd = 0x833b308 "xR0\bhÎ3\b\b"}} bboxObj = {type = objNone, {booln = 137613288, intg = 137613288, real = 6.7989998012057463e-316, string = 0x833cfe8, name = 0x833cfe8 "xR0\b", array = 0x833cfe8, dict = 0x833cfe8, stream = 0x833cfe8, ref = {num = 137613288, gen = 0}, cmd = 0x833cfe8 "xR0\b"}} m = {1, 0, 0, 1, 0, 0} bbox = {0, 0, 791.00800000000004, 539.00800000000004, 4.2328333916310304e-269, 3.8540256214919406e-269} resObj = {type = objDict, {booln = 137613080, intg = 137613080, real = -1.9287034507965136e-41, string = 0x833cf18, name = 0x833cf18 "xR0\b Ë3\b\b", array = 0x833cf18, dict = 0x833cf18, stream = 0x833cf18, ref = {num = 137613080, gen = -1216683560}, cmd = 0x833cf18 "xR0\b Ë3\b\b"}} obj1 = {type = objNone, {booln = 0, intg = 0, real = 0, string = 0x0, name = 0x0, array = 0x0, dict = 0x0, stream = 0x0, ref = {num = 0, gen = 0}, cmd = 0x0}} i = <value optimized out> #10 0xb76ac4be in Gfx::opXObject (this=0x8366688, args=0xb69980e0, numArgs=1) at Gfx.cc:2906 obj1 = {type = objStream, {booln = 138056912, intg = 138056912, real = -1.1167292271195578e-45, string = 0x83a94d0, name = 0x83a94d0 "(%y·\003", array = 0x83a94d0, dict = 0x83a94d0, stream = 0x83a94d0, ref = {num = 138056912, gen = -1231454104}, cmd = 0x83a94d0 "(%y·\003"}} obj2 = {type = objName, {booln = 137780384, intg = 137780384, real = 6.8072554405214952e-316, string = 0x8365ca0, name = 0x8365ca0 "Form", array = 0x8365ca0, dict = 0x8365ca0, stream = 0x8365ca0, ref = {num = 137780384, gen = 0}, cmd = 0x8365ca0 "Form"}} obj3 = {type = objNone, {booln = 137131300, intg = 137131300, real = -1.1167078448578746e-45, string = 0x82c7524, name = 0x82c7524 "\n", array = 0x82c7524, dict = 0x82c7524, stream = 0x82c7524, ref = {num = 137131300, gen = -1231454136}, cmd = 0x82c7524 "\n"}} refObj = {type = objNone, {booln = -1217503283, intg = -1217503283, real = -1.8081881531593169e-41, string = 0xb76e5fcd, name = 0xb76e5fcd "\201Ã\aÔ\n", array = 0xb76e5fcd, dict = 0xb76e5fcd, stream = 0xb76e5fcd, ref = {num = -1217503283, gen = -1216793644}, cmd = 0xb76e5fcd "\201Ã\aÔ\n"}} opiDict = {type = objNull, {booln = 137141779, intg = 137141779, real = -1.1166971538006645e-45, string = 0x82c9e13, name = 0x82c9e13 "", array = 0x82c9e13, dict = 0x82c9e13, stream = 0x82c9e13, ref = {num = 137141779, gen = -1231454152}, cmd = 0x82c9e13 ""}} #11 0xb76a736d in Gfx::execOp (this=0x8366688, cmd=0xb6998140, args=0xb69980e0, numArgs=<value optimized out>) at Gfx.cc:712 op = (Operator *) 0xb77a2b30 name = 0x831ace8 "Do" argPtr = (Object *) 0xb69980e0 i = 1 #12 0xb76a752b in Gfx::go (this=0x8366688, topLevel=1) at Gfx.cc:580 obj = {type = objCmd, {booln = 137473256, intg = 137473256, real = 539.00978125389975, string = 0x831ace8, name = 0x831ace8 "Do", array = 0x831ace8, dict = 0x831ace8, stream = 0x831ace8, ref = {num = 137473256, gen = 1082185748}, cmd = 0x831ace8 "Do"}} args = {{type = objName, {booln = 137146336, intg = 137146336, real = 539.00978121673324, string = 0x82cafe0, name = 0x82cafe0 "Q", array = 0x82cafe0, dict = 0x82cafe0, stream = 0x82cafe0, ref = {num = 137146336, gen = 1082185748}, cmd = 0x82cafe0 "Q"}}, {type = objNone, {booln = 137777256, intg = 137777256, real = 539.00978128846054, string = 0x8365068, name = 0x8365068 "\004", array = 0x8365068, dict = 0x8365068, stream = 0x8365068, ref = {num = 137777256, gen = 1082185748}, cmd = 0x8365068 "\004"}}, { type = objNone, {booln = 2061584302, intg = 2061584302, real = 791.00999999999999, string = 0x7ae147ae, name = 0x7ae147ae <Address 0x7ae147ae out of bounds>, array = 0x7ae147ae, dict = 0x7ae147ae, stream = 0x7ae147ae, ref = {num = 2061584302, gen = 1082701844}, cmd = 0x7ae147ae <Address 0x7ae147ae out of bounds>}}, { type = objNone, {booln = 2061584302, intg = 2061584302, real = 539.00999999999999, string = 0x7ae147ae, name = 0x7ae147ae <Address 0x7ae147ae out of bounds>, array = 0x7ae147ae, dict = 0x7ae147ae, stream = 0x7ae147ae, ref = {num = 2061584302, gen = 1082185748}, cmd = 0x7ae147ae <Address 0x7ae147ae out of bounds>}}, { type = objNone, {booln = 0, intg = 0, real = 0, string = 0x0, name = 0x0, array = 0x0, dict = 0x0, stream = 0x0, ref = {num = 0, gen = 0}, cmd = 0x0}}, {type = objNone, { booln = 0, intg = 0, real = 0, string = 0x0, name = 0x0, array = 0x0, dict = 0x0, stream = 0x0, ref = {num = 0, gen = 0}, cmd = 0x0}}, {type = objNone, {booln = 1355960, intg = 1355960, real = -7.7986857567543487e-42, string = 0x14b0b8, name = 0x14b0b8 <Address 0x14b0b8 out of bounds>, array = 0x14b0b8, dict = 0x14b0b8, stream = 0x14b0b8, ref = {num = 1355960, gen = -1218069164}, cmd = 0x14b0b8 <Address 0x14b0b8 out of bounds>}}, {type = objNone, {booln = 137131280, intg = 137131280, real = 2.7084385915710771e-269, string = 0x82c7510, name = 0x82c7510 "xR0\bø\235,\b\n", array = 0x82c7510, dict = 0x82c7510, stream = 0x82c7510, ref = {num = 137131280, gen = 137141752}, cmd = 0x82c7510 "xR0\bø\235,\b\n"}}} numArgs = 1 i = 2 lastAbortCheck = 0 timer = (GooTimer *) 0x833afe8 #13 0xb76a7eaf in Gfx::display (this=0x8366688, obj=0xb6998200, topLevel=1) at Gfx.cc:543 obj2 = {type = objNone, {booln = -1208200496, intg = -1208200496, real = -1.1170023078666543e-45, string = 0xb7fc52d0, name = 0xb7fc52d0 "ZY\207\004$Â\b", array = 0xb7fc52d0, dict = 0xb7fc52d0, stream = 0xb7fc52d0, ref = {num = -1208200496, gen = -1231453696}, cmd = 0xb7fc52d0 "ZY\207\004$Â\b"}} i = <value optimized out> #14 0xb76eeadd in Page::displaySlice (this=0x8308810, out=0x8312e90, hDPI=11.090252707581229, vDPI=11.090252707581229, rotate=0, useMediaBox=0, crop=1, sliceX=0, sliceY=0, sliceW=127, sliceH=89, links=0x0, catalog=0x8304da8, abortCheckCbk=0, abortCheckCbkData=0x0, annotDisplayDecideCbk=0, annotDisplayDecideCbkData=0x0) at Page.cc:375 gfx = (Gfx *) 0x8366688 obj = {type = objStream, {booln = 138022800, intg = 138022800, real = 2.8028285953960652e-269, string = 0x83a0f90, name = 0x83a0f90 "(%y·\003", array = 0x83a0f90, dict = 0x83a0f90, stream = 0x83a0f90, ref = {num = 138022800, gen = 137207112}, cmd = 0x83a0f90 "(%y·\003"}} annotList = <value optimized out> i = <value optimized out> #15 0xb77bab7f in poppler_page_render_to_pixbuf (page=0x833c4c0, src_x=0, src_y=0, src_width=127, src_height=89, scale=0.15403128760529483, rotation=0, pixbuf=0x82f9000) at poppler-page.cc:366 data = {cairo_data = 0x8395b88 'ÿ' <repeats 200 times>..., surface = 0x833af00, cairo = 0x833c9d0} __PRETTY_FUNCTION__ = "void poppler_page_render_to_pixbuf(PopplerPage*, int, int, int, int, double, int, GdkPixbuf*)" #16 0x080a08f5 in pdf_document_thumbnails_get_thumbnail (document_thumbnails=0x82d7940, rc=0x82d7650, border=1) at ev-poppler.cc:1193 pdf_document = (PdfDocument *) 0x82d7940 poppler_page = (PopplerPage *) 0x833c4c0 pixbuf = (GdkPixbuf *) 0x82f9000 border_pixbuf = <value optimized out> __PRETTY_FUNCTION__ = "GdkPixbuf* pdf_document_thumbnails_get_thumbnail(EvDocumentThumbnails*, EvRenderContext*, gboolean)" #17 0x0809caea in ev_document_thumbnails_get_thumbnail (document=0x82d7940, rc=0x82d7650, border=1) at ev-document-thumbnails.c:57 __PRETTY_FUNCTION__ = "ev_document_thumbnails_get_thumbnail" #18 0x08069710 in ev_job_thumbnail_run (job=0x82c69a0) at ev-jobs.c:382 __PRETTY_FUNCTION__ = "ev_job_thumbnail_run" #19 0x08068227 in handle_job (job=0x82c69a0) at ev-job-queue.c:96 __PRETTY_FUNCTION__ = "handle_job" #20 0x0806888c in ev_render_thread (data=0x0) at ev-job-queue.c:187 job = (EvJob *) 0x82c69a0 #21 0xb725db7f in g_thread_create_proxy (data=0x8138238) at gthread.c:591 __PRETTY_FUNCTION__ = "g_thread_create_proxy" #22 0xb782331b in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #23 0xb71393ee in clone () from /lib/tls/i686/cmov/libc.so.6 . Thread 1 (process 17500): #0 poppler_attachment_save_to_callback (attachment=0x82d1260, save_func=0x80a0d90 <attachment_save_to_buffer_callback>, user_data=0xbf8e155c, error=0xbf8e1568) at poppler-attachment.cc:196 stream = (class Stream *) 0x0 buf = "àk\202·¨\t\016\b°\t\016\bôo\032· \201\032·\220ñ;\bh\021\216¿\020N\r· \201\032·\220ñ;\b@T\202·pv.·àk\202·\210ñ;\b\\D\000\000ðk\202·\210\021\216¿Hg*·üg\202·\220ñ;\b\210\021\216¿\001\000\000\000\220ñ;\bpv.·àk\202·\220ñ;\b\210\021\216¿ðk\202·\030\022\216¿Y\207-·`\022-\b |3\b\000\000\000\000QT\202·\220ñ;\b\004\022\216¿\b\000\000\000\220ñ;\b¨ñ;\b`\022-\b |3\b\220ñ;\b\\D\000\000\000\000\000\000Ðý,·\001\000\000\000üg\202·Hg*·\b\000\000\000\000\000\000\000"... i = <value optimized out> eof_reached = <value optimized out> __PRETTY_FUNCTION__ = "gboolean poppler_attachment_save_to_callback(PopplerAttachment*, gboolean (*)(const gchar*, gsize, void*, GError**), void*, GError**)" #1 0x080a0f69 in pdf_document_get_attachments (document=0x82d7940) at ev-poppler.cc:366 attachment = (PopplerAttachment *) 0x82d1260 ev_attachment = <value optimized out> error = (GError *) 0x0 attachments = <value optimized out> list = (GList *) 0x82c1310 retval = (GList *) 0x0 #2 0x0809bb5b in ev_document_get_attachments (document=0x82d7940) at ev-document.c:228 retval = (GList *) 0x82d1280 #3 0x0808908c in ev_sidebar_attachments_set_document (page=0x81aaec0, document=0x82d7940) at ev-sidebar-attachments.c:624 ev_attachbar = <value optimized out> attachments = <value optimized out> l = <value optimized out> #4 0x08087ba0 in ev_sidebar_set_document (sidebar=0x81ade30, document=0x82d7940) at ev-sidebar.c:507 widget = (GtkWidget *) 0x81aaec0 menu_widget = (GtkWidget *) 0x81ae1d0 priv = (EvSidebarPrivate *) 0x81ade80 iter = {stamp = -139174880, user_data = 0x82bdb80, user_data2 = 0x0, user_data3 = 0x0} valid = <value optimized out> has_pages = 0 __PRETTY_FUNCTION__ = "ev_sidebar_set_document" #5 0x0808158f in ev_window_load_job_cb (job=0x82bd368, data=0x8143008) at ev-window.c:1084 ev_window = <value optimized out> document = (EvDocument *) 0x82d7650 __PRETTY_FUNCTION__ = "ev_window_load_job_cb" #6 0xb72c59d9 in IA__g_cclosure_marshal_VOID__VOID (closure=0x82caa98, return_value=0x0, n_param_values=1, param_values=0xbf8e18ec, invocation_hint=0xbf8e17fc, marshal_data=0x80812b0) at gmarshal.c:77 data1 = (gpointer) 0x82bd368 data2 = (gpointer) 0x82d1280 __PRETTY_FUNCTION__ = "IA__g_cclosure_marshal_VOID__VOID" #7 0xb72b862b in IA__g_closure_invoke (closure=0x82caa98, return_value=0x0, n_param_values=1, param_values=0xbf8e18ec, invocation_hint=0xbf8e17fc) at gclosure.c:490 marshal = (GClosureMarshal) 0x8064d8c <g_cclosure_marshal_VOID__VOID@plt> marshal_data = (gpointer) 0x0 __PRETTY_FUNCTION__ = "IA__g_closure_invoke" #8 0xb72c9103 in signal_emit_unlocked_R (node=0x82ca680, detail=0, instance=0x82bd368, emission_return=0x0, instance_and_params=0xbf8e18ec) at gsignal.c:2440 tmp = <value optimized out> handler = (Handler *) 0x82c6d80 accumulator = (SignalAccumulator *) 0x0 emission = {next = 0x0, instance = 0x82bd368, ihint = {signal_id = 257, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 4} class_closure = (GClosure *) 0x81426a0 handler_list = (Handler *) 0x82c6d80 return_accu = (GValue *) 0x0 accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} signal_id = 257 max_sequential_handler_number = 790 return_value_altered = 0 #9 0xb72ca627 in IA__g_signal_emit_valist (instance=0x82bd368, signal_id=257, detail=0, var_args=0xbf8e1b2c "Hg*·àk\202·Hg*·H\033\216¿R\207\006\bhÓ+\b0Þ+\bh\033\216¿\221à#·hÓ+\b\210\2261\bh\033\216¿Ò\177%·\b") at gsignal.c:2199 _flags = <value optimized out> _vtable = <value optimized out> _cvalues = {{v_int = -1221691792, v_long = -1221691792, v_int64 = 582885820293084784, v_double = 1.0801941714701912e-269, v_pointer = 0xb72e7670}, {v_int = 3, v_long = 3, v_int64 = -4643745131793481725, v_double = -0.01469880342483521, v_pointer = 0x3}, {v_int = -1221875586, v_long = -1221875586, v_int64 = 582885837472770174, v_double = 1.0801970597502928e-269, v_pointer = 0xb72ba87e}, {v_int = 3, v_long = 3, v_int64 = 8589934595, v_double = 4.2439915834127416e-314, v_pointer = 0x3}, { v_int = -1221875981, v_long = -1221875981, v_int64 = 582885837472769779, v_double = 1.0801970597502264e-269, v_pointer = 0xb72ba6f3}, {v_int = 1, v_long = 1, v_int64 = -5256527937187872767, v_double = -1.6289418972857289e-43, v_pointer = 0x1}, {v_int = -1210790996, v_long = -1210790996, v_int64 = 582885820303985580, v_double = 1.0801941733028529e-269, v_pointer = 0xb7d4cbac}, {v_int = 135563208, v_long = 135563208, v_int64 = -4643744719341058104, v_double = -0.014699518915737189, v_pointer = 0x81487c8}} _lcopy_format = <value optimized out> _n_values = <value optimized out> return_value = {g_type = 3078844309, data = {{v_int = 1, v_uint = 1, v_long = 1, v_ulong = 1, v_int64 = -5248268856811585535, v_uint64 = 13198475216897966081, v_float = 1.40129846e-45, v_double = -5.919856522227832e-43, v_pointer = 0x1}, {v_int = -1081206008, v_uint = 3213761288, v_long = -1081206008, v_ulong = 3213761288, v_int64 = -5249662269837665528, v_uint64 = 13197081803871886088, v_float = -1.11019993, v_double = -4.8099390118705172e-43, v_pointer = 0xbf8e1b08}}} error = <value optimized out> instance_and_params = (GValue *) 0xbf8e18ec stack_values = {{g_type = 137146288, data = {{v_int = 137089896, v_uint = 137089896, v_long = 137089896, v_ulong = 137089896, v_int64 = 137089896, v_uint64 = 137089896, v_float = 5.17069476e-34, v_double = 6.7731408005549321e-316, v_pointer = 0x82bd368}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}, {g_type = 135595332, data = {{v_int = 77, v_uint = 77, v_long = 77, v_ulong = 77, v_int64 = 326417514573, v_uint64 = 326417514573, v_float = 1.07899982e-43, v_double = 1.6127168015140375e-312, v_pointer = 0x4d}, {v_int = -1216195503, v_uint = 3078771793, v_long = -1216195503, v_ulong = 3078771793, v_int64 = 591017877017089105, v_uint64 = 591017877017089105, v_float = -1.55364705e-05, v_double = 3.7322544399350011e-269, v_pointer = 0xb7825451}}}, {g_type = 3081392960, data = {{v_int = -1081206488, v_uint = 3213760808, v_long = -1081206488, v_ulong = 3213760808, v_int64 = -5223470000193529560, v_uint64 = 13223274073516022056, v_float = -1.11014271, v_double = -2.6555782732658365e-41, v_pointer = 0xbf8e1928}, {v_int = -1216114316, v_uint = 3078852980, v_long = -1216114316, v_ulong = 3078852980, v_int64 = 54618460532, v_uint64 = 54618460532, v_float = -1.56841488e-05, v_double = 2.6985104977597214e-313, v_pointer = 0xb7839174}}}, {g_type = 3213760824, data = {{v_int = -1216122987, v_uint = 3078844309, v_long = -1216122987, v_ulong = 3078844309, v_int64 = 7373811605, v_uint64 = 7373811605, v_float = -1.56683764e-05, v_double = 3.6431469929360038e-314, v_pointer = 0xb7836f95}, { v_int = -1221957816, v_uint = 3073009480, v_long = -1221957816, v_ulong = 3073009480, v_int64 = -4643746159512623288, v_uint64 = 13802997914196928328, v_float = -1.01568367e-05, v_double = -0.01469702061631363, v_pointer = 0xb72a6748}}}, {g_type = 3072683698, data = {{v_int = 135137560, v_uint = 135137560, v_long = 135137560, v_ulong = 135137560, v_int64 = 4430104856, v_uint64 = 4430104856, v_float = 4.27422603e-34, v_double = 2.1887626168240825e-314, v_pointer = 0x80e0918}, {v_int = -1081206440, v_uint = 3213760856, v_long = -1081206440, v_ulong = 3213760856, v_int64 = 580412022350289240, v_uint64 = 580412022350289240, v_float = -1.11014843, v_double = 7.1072406995116634e-270, v_pointer = 0xbf8e1958}}}, {g_type = 135137720, data = {{v_int = 8, v_uint = 8, v_long = 8, v_ulong = 8, v_int64 = -4643745956427202552, v_uint64 = 13802998117282349064, v_float = 1.12103877e-44, v_double = -0.01469737291336061, v_pointer = 0x8}, { v_int = -1222282246, v_uint = 3072685050, v_long = -1222282246, v_ulong = 3072685050, v_int64 = 580411403733922810, v_uint64 = 580411403733922810, v_float = -9.86176929e-06, v_double = 7.1067206849418028e-270, v_pointer = 0xb72573fa}}}, {g_type = 3084176300, data = {{v_int = -1081206392, v_uint = 3213760904, v_long = -1081206392, v_ulong = 3213760904, v_int64 = -5223519907713508984, v_uint64 = 13223224165996042632, v_float = -1.11015415, v_double = -2.6301359480229879e-41, v_pointer = 0xbf8e1988}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = -5212262084384915456, v_uint64 = 13234481989324636160, v_float = 0, v_double = -1.5109921081121638e-40, v_pointer = 0x0}}}, {g_type = 3213760904, data = {{v_int = -1222260812, v_uint = 3072706484, v_long = -1222260812, v_ulong = 3072706484, v_int64 = 75165000386484, v_uint64 = 75165000386484, v_float = -9.8812634e-06, v_double = 3.7136444460605764e-310, v_pointer = 0xb725c7b4}, { v_int = -1211031582, v_uint = 3083935714, v_long = -1211031582, v_ulong = 3083935714, v_int64 = -4643745953343266846, v_uint64 = 13802998120366284770, v_float = -2.49295881e-05, v_double = -0.014697378263136277, v_pointer = 0xb7d11fe2}}}, {g_type = 3078771793, data = {{v_int = -1216190468, v_uint = 3078776828, v_long = -1216190468, v_ulong = 3078776828, v_int64 = -5248268853732808708, v_uint64 = 13198475219976742908, v_float = -1.55456291e-05, v_double = -5.9198589746150616e-43, v_pointer = 0xb78267fc}, {v_int = -1081206344, v_uint = 3213760952, v_long = -1081206344, v_ulong = 3213760952, v_int64 = -5223470000193529416, v_uint64 = 13223274073516022200, v_float = -1.11015987, v_double = -2.6555782732659099e-41, v_pointer = 0xbf8e19b8}}}, { g_type = 3078852980, data = {{v_int = 1, v_uint = 1, v_long = 1, v_ulong = 1, v_int64 = -4643745887707725823, v_uint64 = 13802998186001825793, v_float = 1.40129846e-45, v_double = -0.014697492122650148, v_pointer = 0x1}, {v_int = -1216122987, v_uint = 3078844309, v_long = -1216122987, v_ulong = 3078844309, v_int64 = 7373811605, v_uint64 = 7373811605, v_float = -1.56683764e-05, v_double = 3.6431469929360038e-314, v_pointer = 0xb7836f95}}}, {g_type = 3073009480, data = {{v_int = -1081206264, v_uint = 3213761032, v_long = -1081206264, v_ulong = 3213761032, v_int64 = -5249662269837665784, v_uint64 = 13197081803871885832, v_float = -1.11016941, v_double = -4.8099390118703133e-43, v_pointer = 0xbf8e1a08}, {v_int = 135137560, v_uint = 135137560, v_long = 135137560, v_ulong = 135137560, v_int64 = -5201341038978004712, v_uint64 = 13245403034731546904, v_float = 4.27422603e-34, v_double = -7.8632043842117798e-40, v_pointer = 0x80e0918}}}, { g_type = 3078777824, data = {{v_int = 16, v_uint = 16, v_long = 16, v_ulong = 16, v_int64 = 580412019136528400, v_uint64 = 580412019136528400, v_float = 2.24207754e-44, v_double = 7.1072379979949374e-270, v_pointer = 0x10}, {v_int = 1, v_uint = 1, v_long = 1, v_ulong = 1, v_int64 = 73014444033, v_uint64 = 73014444033, v_float = 1.40129846e-45, v_double = 3.6073928446903695e-313, v_pointer = 0x1}}}, {g_type = 135136540, data = {{v_int = 135903136, v_uint = 135903136, v_long = 135903136, v_ulong = 135903136, v_int64 = -5201341038977239136, v_uint64 = 13245403034732312480, v_float = 4.62576129e-34, v_double = -7.8632043854606839e-40, v_pointer = 0x819b7a0}, {v_int = 8, v_uint = 8, v_long = 8, v_ulong = 8, v_int64 = -5247484235006083064, v_uint64 = 13199259838703468552, v_float = 1.12103877e-44, v_double = -6.5448438480498954e-43, v_pointer = 0x8}}}, {g_type = 135725592, data = {{v_int = 135563208, v_uint = 135563208, v_long = 135563208, v_ulong = 135563208, v_int64 = 135563208, v_uint64 = 135563208, v_float = 4.46967401e-34, v_double = 6.697712391283124e-316, v_pointer = 0x81487c8}, {v_int = -1221775132, v_uint = 3073192164, v_long = -1221775132, v_ulong = 3073192164, v_int64 = 3073192164, v_uint64 = 3073192164, v_float = -1.03229868e-05, v_double = 1.5183586713009181e-314, v_pointer = 0xb72d30e4}}}, {g_type = 1076520776, data = {{v_int = -1081206232, v_uint = 3213761064, v_long = -1081206232, v_ulong = 3213761064, v_int64 = -5247484231792322008, v_uint64 = 13199259841917229608, v_float = -1.11017323, v_double = -6.5448464079582667e-43, v_pointer = 0xbf8e1a28}, {v_int = 135713680, v_uint = 135713680, v_long = 135713680, v_ulong = 135713680, v_int64 = 330848195472, v_uint64 = 330848195472, v_float = 4.53876736e-34, v_double = 1.6346072737128466e-312, v_pointer = 0x816d390}}}, {g_type = 3213761096, data = {{v_int = -1221775132, v_uint = 3073192164, v_long = -1221775132, v_ulong = 3073192164, v_int64 = 582377519503454436, v_uint64 = 582377519503454436, v_float = -1.03229868e-05, v_double = 9.9473771385823958e-270, v_pointer = 0xb72d30e4}, {v_int = 1073741901, v_uint = 1073741901, v_long = 1073741901, v_ulong = 1073741901, v_int64 = 327491256397, v_uint64 = 327491256397, v_float = 2.00001836, v_double = 1.6180217909914507e-312, v_pointer = 0x4000004d}}}} free_me = (GValue *) 0x0 signal_return_type = 4 param_values = (GValue *) 0xbf8e1900 node = (SignalNode *) 0x82ca680 i = 3072683698 n_params = 0 __PRETTY_FUNCTION__ = "IA__g_signal_emit_valist" #10 0xb72ca7e9 in IA__g_signal_emit (instance=0x82bd368, signal_id=257, detail=0) at gsignal.c:2243 var_args = 0xbf8e1b2c "Hg*·àk\202·Hg*·H\033\216¿R\207\006\bhÓ+\b0Þ+\bh\033\216¿\221à#·hÓ+\b\210\2261\bh\033\216¿Ò\177%·\b" #11 0x08068b86 in ev_job_finished (job=0x82bd368) at ev-jobs.c:233 __PRETTY_FUNCTION__ = "ev_job_finished" #12 0x08068752 in notify_finished (job=0x82bd368) at ev-job-queue.c:67 No locals. #13 0xb723e091 in g_idle_dispatch (source=0x8319688, callback=0x80e4560, user_data=0x82bd368) at gmain.c:3928 No locals. #14 0xb723fdf2 in IA__g_main_context_dispatch (context=0x810f550) at gmain.c:2045 No locals. #15 0xb7242dcf in g_main_context_iterate (context=0x810f550, block=1, dispatch=1, self=0x80e0258) at gmain.c:2677 got_ownership = <value optimized out> max_priority = 200 timeout = 0 some_ready = 1 nfds = <value optimized out> allocated_nfds = <value optimized out> fds = (GPollFD *) 0x8311048 __PRETTY_FUNCTION__ = "g_main_context_iterate" #16 0xb7243179 in IA__g_main_loop_run (loop=0x812c8b8) at gmain.c:2881 got_ownership = -1216195520 self = (GThread *) 0x80e0258 __PRETTY_FUNCTION__ = "IA__g_main_loop_run" #17 0xb7b37044 in IA__gtk_main () at gtkmain.c:1177 tmp_list = (GList *) 0x812e8a8 functions = (GList *) 0x0 init = (GtkInitFunction *) 0x0 loop = (GMainLoop *) 0x812c8b8 #18 0x0808dc50 in main (argc=2, argv=0xe0000038) at main.c:319 enable_metadata = 1 context = <value optimized out> args = (GHashTable *) 0x80e2140 program = (GnomeProgram *) 0x80e9410"
There is a similar crash on https://bugs.launchpad.net/bugs/419777 example: http://launchpadlibrarian.net/31038402/Wiley.OpenSolaris.Bible.Feb.2009.pdf the issue is there using 0.11.3 too
I think they are different issues. The first one was a bug in evince that we already fixed some time ago. The second looks like a broken pdf file, it contains a FileSpec object with an empty EF dictionary: 4205 0 obj <</UF(C1.jpg)/F(C1.jpg)/EF<<>>/Desc()/Type/Filespec>> endobj I'd say this is wrong . . . In any case we shouldn't crash when EmbFile contains a null stream. Albert, does this make qt frontend crash too? or do I mark this bug as glib only?
should this bug be closed if the issue was a fixed evince one and a new one opened about the new crash?
Crashes too on the Qt frontend, the question is, should we "stop" reporting the Embedded file from the core when we realize it's not a valid one or still report it and fail when trying to save it. Adobe does the later, but for us would be easier the first and for the user the result is the same as he can't extract the file. But still i think we should go fixing the frontends, what do you say?
An attachment that can't be opened/saved/... is useless, so I think we might just show an error message saying that an invalid embedded file has been found and ignore such attachment.
Carlos: At the end Pino and me think that mimicking Adobe's behaviour is the best so i've added a isOk() method to EmbFile in poppler core you should use in the glib frontend to avoid the crash.
Ok, fixed in glib too. Thanks!
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.