[Poppler-bugs] [Bug 101364] New: Endless recursion on XRef::getCatalog(Object*)
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Fri Jun 9 22:27:01 UTC 2017
https://bugs.freedesktop.org/show_bug.cgi?id=101364
Bug ID: 101364
Summary: Endless recursion on XRef::getCatalog(Object*)
Product: poppler
Version: unspecified
Hardware: Other
OS: All
Status: NEW
Severity: normal
Priority: medium
Component: general
Assignee: poppler-bugs at lists.freedesktop.org
Reporter: dudul04 at yahoo.fr
Created attachment 131833
--> https://bugs.freedesktop.org/attachment.cgi?id=131833&action=edit
faulty PDF
Reproducible with at least poppler 0.41 and poppler-git.
The opening of the attached PDF (generated by OSS Fuzz) ends up in an
apparently endless recursion of calls
{{{
[snip}
#86 0x00007ffff7abb1ea in XRef::fetch (this=0x64e540, num=7, gen=0,
obj=obj at entry=0x7ffffffde4e0, recursion=recursion at entry=459) at XRef.cc:1224
#87 0x00007ffff7a983c5 in Object::fetch (this=<optimized out>, xref=<optimized
out>, obj=obj at entry=0x7ffffffde4e0, recursion=recursion at entry=459) at
Object.cc:122
#88 0x00007ffff7a371dd in Dict::lookup (this=<optimized out>,
key=key at entry=0x7ffff7b16918 "Length", obj=obj at entry=0x7ffffffde4e0,
recursion=recursion at entry=459) at Dict.cc:261
#89 0x00007ffff7a9e55d in Object::dictLookup (key=0x7ffff7b16918 "Length",
this=0x7ffffffde620, this=0x7ffffffde620, recursion=459, obj=0x7ffffffde4e0) at
Object.h:342
#90 Parser::makeStream (this=this at entry=0x161a9d0,
dict=dict at entry=0x7ffffffde620, fileKey=fileKey at entry=0x0,
encAlgorithm=encAlgorithm at entry=cryptNone, keyLength=keyLength at entry=6607408,
objNum=objNum at entry=7,
objGen=0, recursion=459, strict=false) at Parser.cc:209
#91 0x00007ffff7a9ebac in Parser::getObj (this=this at entry=0x161a9d0,
obj=obj at entry=0x7ffffffde620, simpleOnly=simpleOnly at entry=false,
fileKey=fileKey at entry=0x0, encAlgorithm=encAlgorithm at entry=cryptNone,
keyLength=keyLength at entry=6607408, objNum=7, objGen=0, recursion=458,
strict=false) at Parser.cc:131
#92 0x00007ffff7a9ecad in Parser::getObj (this=this at entry=0x161a9d0,
obj=obj at entry=0x7ffffffde6c0, simpleOnly=simpleOnly at entry=false,
fileKey=fileKey at entry=0x0, encAlgorithm=encAlgorithm at entry=cryptNone,
keyLength=keyLength at entry=6607408, objNum=7, objGen=0, recursion=457,
strict=false) at Parser.cc:95
#93 0x00007ffff7a9ed49 in Parser::getObj (this=this at entry=0x161a9d0,
obj=obj at entry=0x7ffffffde830, simpleOnly=simpleOnly at entry=false, fileKey=0x0,
encAlgorithm=cryptNone, keyLength=6607408, objNum=7, objGen=0,
recursion=456, strict=false) at Parser.cc:121
#94 0x00007ffff7abb1ea in XRef::fetch (this=0x64e540, num=7, gen=0,
obj=obj at entry=0x7ffffffde830, recursion=recursion at entry=456) at XRef.cc:1224
#95 0x00007ffff7a983c5 in Object::fetch (this=<optimized out>, xref=<optimized
out>, obj=obj at entry=0x7ffffffde830, recursion=recursion at entry=456) at
Object.cc:122
#96 0x00007ffff7a371dd in Dict::lookup (this=<optimized out>,
key=key at entry=0x7ffff7b16918 "Length", obj=obj at entry=0x7ffffffde830,
recursion=recursion at entry=456) at Dict.cc:261
#97 0x00007ffff7a9e55d in Object::dictLookup (key=0x7ffff7b16918 "Length",
this=0x7ffffffde970, this=0x7ffffffde970, recursion=456, obj=0x7ffffffde830) at
Object.h:342
#98 Parser::makeStream (this=this at entry=0x15ff8c0,
dict=dict at entry=0x7ffffffde970, fileKey=fileKey at entry=0x0,
encAlgorithm=encAlgorithm at entry=cryptNone, keyLength=keyLength at entry=6607408,
objNum=objNum at entry=7,
objGen=0, recursion=456, strict=false) at Parser.cc:209
#99 0x00007ffff7a9ebac in Parser::getObj (this=this at entry=0x15ff8c0,
obj=obj at entry=0x7ffffffde970, simpleOnly=simpleOnly at entry=false,
fileKey=fileKey at entry=0x0, encAlgorithm=encAlgorithm at entry=cryptNone,
keyLength=keyLength at entry=6607408, objNum=7, objGen=0, recursion=455,
strict=false) at Parser.cc:131
#100 0x00007ffff7a9ecad in Parser::getObj (this=this at entry=0x15ff8c0,
obj=obj at entry=0x7ffffffdea10, simpleOnly=simpleOnly at entry=false,
fileKey=fileKey at entry=0x0, encAlgorithm=encAlgorithm at entry=cryptNone,
keyLength=keyLength at entry=6607408, objNum=7, objGen=0, recursion=454,
strict=false) at Parser.cc:95
#101 0x00007ffff7a9ed49 in Parser::getObj (this=this at entry=0x15ff8c0,
obj=obj at entry=0x7ffffffdeb80, simpleOnly=simpleOnly at entry=false, fileKey=0x0,
encAlgorithm=cryptNone, keyLength=6607408, objNum=7, objGen=0,
recursion=453, strict=false) at Parser.cc:121
#102 0x00007ffff7abb1ea in XRef::fetch (this=0x64e540, num=7, gen=0,
obj=obj at entry=0x7ffffffdeb80, recursion=recursion at entry=453) at XRef.cc:1224
#103 0x00007ffff7a983c5 in Object::fetch (this=<optimized out>, xref=<optimized
out>, obj=obj at entry=0x7ffffffdeb80, recursion=recursion at entry=453) at
Object.cc:122
#104 0x00007ffff7a371dd in Dict::lookup (this=<optimized out>,
key=key at entry=0x7ffff7b16918 "Length", obj=obj at entry=0x7ffffffdeb80,
recursion=recursion at entry=453) at Dict.cc:261
#105 0x00007ffff7a9e55d in Object::dictLookup (key=0x7ffff7b16918 "Length",
this=0x7ffffffdecc0, this=0x7ffffffdecc0, recursion=453, obj=0x7ffffffdeb80) at
Object.h:342
#106 Parser::makeStream (this=this at entry=0x15e47b0,
dict=dict at entry=0x7ffffffdecc0, fileKey=fileKey at entry=0x0,
encAlgorithm=encAlgorithm at entry=cryptNone, keyLength=keyLength at entry=6607408,
objNum=objNum at entry=7, objGen=0, recursion=453, strict=false) at
Parser.cc:209
#107 0x00007ffff7a9ebac in Parser::getObj (this=this at entry=0x15e47b0,
obj=obj at entry=0x7ffffffdecc0, simpleOnly=simpleOnly at entry=false,
fileKey=fileKey at entry=0x0, encAlgorithm=encAlgorithm at entry=cryptNone,
keyLength=keyLength at entry=6607408, objNum=7, objGen=0, recursion=452,
strict=false) at Parser.cc:131
#108 0x00007ffff7a9ecad in Parser::getObj (this=this at entry=0x15e47b0,
obj=obj at entry=0x7ffffffded60, simpleOnly=simpleOnly at entry=false,
fileKey=fileKey at entry=0x0, encAlgorithm=encAlgorithm at entry=cryptNone,
keyLength=keyLength at entry=6607408, objNum=7, objGen=0, recursion=451,
strict=false) at Parser.cc:95
#109 0x00007ffff7a9ed49 in Parser::getObj (this=this at entry=0x15e47b0,
obj=obj at entry=0x7ffffffdeed0, simpleOnly=simpleOnly at entry=false, fileKey=0x0,
encAlgorithm=cryptNone, keyLength=6607408, objNum=7, objGen=0,
recursion=450, strict=false) at Parser.cc:121
#110 0x00007ffff7abb1ea in XRef::fetch (this=0x64e540, num=7, gen=0,
obj=obj at entry=0x7ffffffdeed0, recursion=recursion at entry=450) at XRef.cc:1224
#111 0x00007ffff7a983c5 in Object::fetch (this=<optimized out>, xref=<optimized
out>, obj=obj at entry=0x7ffffffdeed0, recursion=recursion at entry=450) at
Object.cc:122
#112 0x00007ffff7a371dd in Dict::lookup (this=<optimized out>,
key=key at entry=0x7ffff7b16918 "Length", obj=obj at entry=0x7ffffffdeed0,
recursion=recursion at entry=450) at Dict.cc:261
#113 0x00007ffff7a9e55d in Object::dictLookup (key=0x7ffff7b16918 "Length",
this=0x7ffffffdf010, this=0x7ffffffdf010, recursion=450, obj=0x7ffffffdeed0) at
Object.h:342
[snip]
}}}
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/poppler-bugs/attachments/20170609/966e2e25/attachment.html>
More information about the Poppler-bugs
mailing list