<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - Endless recursion on XRef::getCatalog(Object*)"
href="https://bugs.freedesktop.org/show_bug.cgi?id=101364">101364</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Endless recursion on XRef::getCatalog(Object*)
</td>
</tr>
<tr>
<th>Product</th>
<td>poppler
</td>
</tr>
<tr>
<th>Version</th>
<td>unspecified
</td>
</tr>
<tr>
<th>Hardware</th>
<td>Other
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Component</th>
<td>general
</td>
</tr>
<tr>
<th>Assignee</th>
<td>poppler-bugs@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>dudul04@yahoo.fr
</td>
</tr></table>
<p>
<div>
<pre>Created <span class=""><a href="attachment.cgi?id=131833" name="attach_131833" title="faulty PDF">attachment 131833</a> <a href="attachment.cgi?id=131833&action=edit" title="faulty PDF">[details]</a></span>
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@entry=0x7ffffffde4e0, recursion=recursion@entry=459) at XRef.cc:1224
#87 0x00007ffff7a983c5 in Object::fetch (this=<optimized out>, xref=<optimized
out>, obj=obj@entry=0x7ffffffde4e0, recursion=recursion@entry=459) at
Object.cc:122
#88 0x00007ffff7a371dd in Dict::lookup (this=<optimized out>,
key=key@entry=0x7ffff7b16918 "Length", obj=obj@entry=0x7ffffffde4e0,
recursion=recursion@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@entry=0x161a9d0,
dict=dict@entry=0x7ffffffde620, fileKey=fileKey@entry=0x0,
encAlgorithm=encAlgorithm@entry=cryptNone, keyLength=keyLength@entry=6607408,
objNum=objNum@entry=7,
objGen=0, recursion=459, strict=false) at Parser.cc:209
#91 0x00007ffff7a9ebac in Parser::getObj (this=this@entry=0x161a9d0,
obj=obj@entry=0x7ffffffde620, simpleOnly=simpleOnly@entry=false,
fileKey=fileKey@entry=0x0, encAlgorithm=encAlgorithm@entry=cryptNone,
keyLength=keyLength@entry=6607408, objNum=7, objGen=0, recursion=458,
strict=false) at Parser.cc:131
#92 0x00007ffff7a9ecad in Parser::getObj (this=this@entry=0x161a9d0,
obj=obj@entry=0x7ffffffde6c0, simpleOnly=simpleOnly@entry=false,
fileKey=fileKey@entry=0x0, encAlgorithm=encAlgorithm@entry=cryptNone,
keyLength=keyLength@entry=6607408, objNum=7, objGen=0, recursion=457,
strict=false) at Parser.cc:95
#93 0x00007ffff7a9ed49 in Parser::getObj (this=this@entry=0x161a9d0,
obj=obj@entry=0x7ffffffde830, simpleOnly=simpleOnly@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@entry=0x7ffffffde830, recursion=recursion@entry=456) at XRef.cc:1224
#95 0x00007ffff7a983c5 in Object::fetch (this=<optimized out>, xref=<optimized
out>, obj=obj@entry=0x7ffffffde830, recursion=recursion@entry=456) at
Object.cc:122
#96 0x00007ffff7a371dd in Dict::lookup (this=<optimized out>,
key=key@entry=0x7ffff7b16918 "Length", obj=obj@entry=0x7ffffffde830,
recursion=recursion@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@entry=0x15ff8c0,
dict=dict@entry=0x7ffffffde970, fileKey=fileKey@entry=0x0,
encAlgorithm=encAlgorithm@entry=cryptNone, keyLength=keyLength@entry=6607408,
objNum=objNum@entry=7,
objGen=0, recursion=456, strict=false) at Parser.cc:209
#99 0x00007ffff7a9ebac in Parser::getObj (this=this@entry=0x15ff8c0,
obj=obj@entry=0x7ffffffde970, simpleOnly=simpleOnly@entry=false,
fileKey=fileKey@entry=0x0, encAlgorithm=encAlgorithm@entry=cryptNone,
keyLength=keyLength@entry=6607408, objNum=7, objGen=0, recursion=455,
strict=false) at Parser.cc:131
#100 0x00007ffff7a9ecad in Parser::getObj (this=this@entry=0x15ff8c0,
obj=obj@entry=0x7ffffffdea10, simpleOnly=simpleOnly@entry=false,
fileKey=fileKey@entry=0x0, encAlgorithm=encAlgorithm@entry=cryptNone,
keyLength=keyLength@entry=6607408, objNum=7, objGen=0, recursion=454,
strict=false) at Parser.cc:95
#101 0x00007ffff7a9ed49 in Parser::getObj (this=this@entry=0x15ff8c0,
obj=obj@entry=0x7ffffffdeb80, simpleOnly=simpleOnly@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@entry=0x7ffffffdeb80, recursion=recursion@entry=453) at XRef.cc:1224
#103 0x00007ffff7a983c5 in Object::fetch (this=<optimized out>, xref=<optimized
out>, obj=obj@entry=0x7ffffffdeb80, recursion=recursion@entry=453) at
Object.cc:122
#104 0x00007ffff7a371dd in Dict::lookup (this=<optimized out>,
key=key@entry=0x7ffff7b16918 "Length", obj=obj@entry=0x7ffffffdeb80,
recursion=recursion@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@entry=0x15e47b0,
dict=dict@entry=0x7ffffffdecc0, fileKey=fileKey@entry=0x0,
encAlgorithm=encAlgorithm@entry=cryptNone, keyLength=keyLength@entry=6607408,
objNum=objNum@entry=7, objGen=0, recursion=453, strict=false) at
Parser.cc:209
#107 0x00007ffff7a9ebac in Parser::getObj (this=this@entry=0x15e47b0,
obj=obj@entry=0x7ffffffdecc0, simpleOnly=simpleOnly@entry=false,
fileKey=fileKey@entry=0x0, encAlgorithm=encAlgorithm@entry=cryptNone,
keyLength=keyLength@entry=6607408, objNum=7, objGen=0, recursion=452,
strict=false) at Parser.cc:131
#108 0x00007ffff7a9ecad in Parser::getObj (this=this@entry=0x15e47b0,
obj=obj@entry=0x7ffffffded60, simpleOnly=simpleOnly@entry=false,
fileKey=fileKey@entry=0x0, encAlgorithm=encAlgorithm@entry=cryptNone,
keyLength=keyLength@entry=6607408, objNum=7, objGen=0, recursion=451,
strict=false) at Parser.cc:95
#109 0x00007ffff7a9ed49 in Parser::getObj (this=this@entry=0x15e47b0,
obj=obj@entry=0x7ffffffdeed0, simpleOnly=simpleOnly@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@entry=0x7ffffffdeed0, recursion=recursion@entry=450) at XRef.cc:1224
#111 0x00007ffff7a983c5 in Object::fetch (this=<optimized out>, xref=<optimized
out>, obj=obj@entry=0x7ffffffdeed0, recursion=recursion@entry=450) at
Object.cc:122
#112 0x00007ffff7a371dd in Dict::lookup (this=<optimized out>,
key=key@entry=0x7ffff7b16918 "Length", obj=obj@entry=0x7ffffffdeed0,
recursion=recursion@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]
}}}</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>