<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 - Very deep stack and long processing time in Catalog::getPage() (~30s)"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=101379">101379</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Very deep stack and long processing time in Catalog::getPage() (~30s)
          </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=131873" name="attach_131873" title="Corrupted PDF file">attachment 131873</a> <a href="attachment.cgi?id=131873&action=edit" title="Corrupted PDF file">[details]</a></span>
Corrupted PDF file

Stack trace on the attached corrupted PDF with :

LD_LIBRARY_PATH=poppler/.libs/ gdb --args ./utils/.libs/pdfinfo
~/oss-fuzz/build/out/gdal/./timeout-7799c4154a932bed4f4fb3b3dcf895f45acd979a

{{{
Program received signal SIGINT, Interrupt.
0x00007ffff72ec6e0 in __write_nocancel () at
../sysdeps/unix/syscall-template.S:84
84      ../sysdeps/unix/syscall-template.S: Aucun fichier ou dossier de ce
type.
(gdb) bt
#0  0x00007ffff72ec6e0 in __write_nocancel () at
../sysdeps/unix/syscall-template.S:84
#1  0x00007ffff726ebff in _IO_new_file_write (f=0x7ffff75ba540
<_IO_2_1_stderr_>, data=0x7ffffffdcf60, n=60) at fileops.c:1263
#2  0x00007ffff726f38a in new_do_write (to_do=60, data=0x7ffffffdcf60 "Syntax
Error (210515): Dictionary key must be a name object\n\377\177",
fp=0x7ffff75ba540 <_IO_2_1_stderr_>) at fileops.c:518
#3  _IO_new_file_xsputn (f=0x7ffff75ba540 <_IO_2_1_stderr_>, data=<optimized
out>, n=60) at fileops.c:1342
#4  0x00007ffff7245f94 in buffered_vfprintf (s=0x7ffff75ba540
<_IO_2_1_stderr_>, format=<optimized out>, args=<optimized out>) at
vfprintf.c:2341
#5  0x00007ffff724332d in _IO_vfprintf_internal (s=s@entry=0x7ffff75ba540
<_IO_2_1_stderr_>, format=format@entry=0x7ffff7b1d16a "%s (%lld): %s\n",
ap=ap@entry=0x7ffffffdf518) at vfprintf.c:1293
#6  0x00007ffff730bfd9 in ___fprintf_chk (fp=0x7ffff75ba540 <_IO_2_1_stderr_>,
flag=flag@entry=1, format=format@entry=0x7ffff7b1d16a "%s (%lld): %s\n") at
fprintf_chk.c:35
#7  0x00007ffff7a37f25 in fprintf (__fmt=0x7ffff7b1d16a "%s (%lld): %s\n",
__stream=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/stdio2.h:98
#8  error (category=category@entry=errSyntaxError, pos=210515,
msg=msg@entry=0x7ffff7b2f3c0 "Dictionary key must be a name object") at
Error.cc:89
#9  0x00007ffff7a9eb12 in Parser::getObj (this=this@entry=0x6e5d70,
obj=obj@entry=0x7ffffffdf7d0, simpleOnly=simpleOnly@entry=false,
fileKey=fileKey@entry=0x0, encAlgorithm=encAlgorithm@entry=cryptNone, 
    keyLength=keyLength@entry=0, objNum=3, objGen=0, recursion=437,
strict=false) at Parser.cc:109
#10 0x00007ffff7a9ecad in Parser::getObj (this=this@entry=0x6e5d70,
obj=obj@entry=0x7ffffffdf870, simpleOnly=simpleOnly@entry=false,
fileKey=fileKey@entry=0x0, encAlgorithm=encAlgorithm@entry=cryptNone, 
    keyLength=keyLength@entry=0, objNum=3, objGen=0, recursion=436,
strict=false) at Parser.cc:95
#11 0x00007ffff7a9ed49 in Parser::getObj (this=this@entry=0x6e5d70,
obj=obj@entry=0x7ffffffdf9e0, simpleOnly=simpleOnly@entry=false, fileKey=0x0,
encAlgorithm=cryptNone, keyLength=0, objNum=3, objGen=0, 
    recursion=435, strict=false) at Parser.cc:121
#12 0x00007ffff7abb1ea in XRef::fetch (this=0x64c650, num=3, gen=0,
obj=obj@entry=0x7ffffffdf9e0, recursion=recursion@entry=435) at XRef.cc:1224
#13 0x00007ffff7a983c5 in Object::fetch (this=<optimized out>, xref=<optimized
out>, obj=obj@entry=0x7ffffffdf9e0, recursion=recursion@entry=435) at
Object.cc:122
#14 0x00007ffff7a371dd in Dict::lookup (this=<optimized out>,
key=key@entry=0x7ffff7b16918 "Length", obj=obj@entry=0x7ffffffdf9e0,
recursion=recursion@entry=435) at Dict.cc:261
#15 0x00007ffff7a9e55d in Object::dictLookup (key=0x7ffff7b16918 "Length",
this=0x7ffffffdfb20, this=0x7ffffffdfb20, recursion=435, obj=0x7ffffffdf9e0) at
Object.h:342
#16 Parser::makeStream (this=this@entry=0x6e4e10,
dict=dict@entry=0x7ffffffdfb20, fileKey=fileKey@entry=0x0,
encAlgorithm=encAlgorithm@entry=cryptNone, keyLength=keyLength@entry=0,
objNum=objNum@entry=3, 
    objGen=0, recursion=435, strict=false) at Parser.cc:209
#17 0x00007ffff7a9ebac in Parser::getObj (this=this@entry=0x6e4e10,
obj=obj@entry=0x7ffffffdfb20, simpleOnly=simpleOnly@entry=false,
fileKey=fileKey@entry=0x0, encAlgorithm=encAlgorithm@entry=cryptNone, 
    keyLength=keyLength@entry=0, objNum=3, objGen=0, recursion=434,
strict=false) at Parser.cc:131
#18 0x00007ffff7a9ecad in Parser::getObj (this=this@entry=0x6e4e10,
obj=obj@entry=0x7ffffffdfbc0, simpleOnly=simpleOnly@entry=false,
fileKey=fileKey@entry=0x0, encAlgorithm=encAlgorithm@entry=cryptNone, 
    keyLength=keyLength@entry=0, objNum=3, objGen=0, recursion=433,
strict=false) at Parser.cc:95
#19 0x00007ffff7a9ed49 in Parser::getObj (this=this@entry=0x6e4e10,
obj=obj@entry=0x7ffffffdfd30, simpleOnly=simpleOnly@entry=false, fileKey=0x0,
encAlgorithm=cryptNone, keyLength=0, objNum=3, objGen=0, 
    recursion=432, strict=false) at Parser.cc:121
#20 0x00007ffff7abb1ea in XRef::fetch (this=0x64c650, num=3, gen=0,
obj=obj@entry=0x7ffffffdfd30, recursion=recursion@entry=432) at XRef.cc:1224
#21 0x00007ffff7a983c5 in Object::fetch (this=<optimized out>, xref=<optimized
out>, obj=obj@entry=0x7ffffffdfd30, recursion=recursion@entry=432) at
Object.cc:122
#22 0x00007ffff7a371dd in Dict::lookup (this=<optimized out>,
key=key@entry=0x7ffff7b16918 "Length", obj=obj@entry=0x7ffffffdfd30,
recursion=recursion@entry=432) at Dict.cc:261
#23 0x00007ffff7a9e55d in Object::dictLookup (key=0x7ffff7b16918 "Length",
this=0x7ffffffdfe70, this=0x7ffffffdfe70, recursion=432, obj=0x7ffffffdfd30) at
Object.h:342
#24 Parser::makeStream (this=this@entry=0x6e3eb0,
dict=dict@entry=0x7ffffffdfe70, fileKey=fileKey@entry=0x0,
encAlgorithm=encAlgorithm@entry=cryptNone, keyLength=keyLength@entry=0,
objNum=objNum@entry=3, 
    objGen=0, recursion=432, strict=false) at Parser.cc:209
#25 0x00007ffff7a9ebac in Parser::getObj (this=this@entry=0x6e3eb0,
obj=obj@entry=0x7ffffffdfe70, simpleOnly=simpleOnly@entry=false,
fileKey=fileKey@entry=0x0, encAlgorithm=encAlgorithm@entry=cryptNone, 
    keyLength=keyLength@entry=0, objNum=3, objGen=0, recursion=431,
strict=false) at Parser.cc:131
#26 0x00007ffff7a9ecad in Parser::getObj (this=this@entry=0x6e3eb0,
obj=obj@entry=0x7ffffffdff10, simpleOnly=simpleOnly@entry=false,
fileKey=fileKey@entry=0x0, encAlgorithm=encAlgorithm@entry=cryptNone, 
    keyLength=keyLength@entry=0, objNum=3, objGen=0, recursion=430,
strict=false) at Parser.cc:95
#27 0x00007ffff7a9ed49 in Parser::getObj (this=this@entry=0x6e3eb0,
obj=obj@entry=0x7ffffffe0080, simpleOnly=simpleOnly@entry=false, fileKey=0x0,
encAlgorithm=cryptNone, keyLength=0, objNum=3, objGen=0, 
    recursion=429, strict=false) at Parser.cc:121
#28 0x00007ffff7abb1ea in XRef::fetch (this=0x64c650, num=3, gen=0,
obj=obj@entry=0x7ffffffe0080, recursion=recursion@entry=429) at XRef.cc:1224
#29 0x00007ffff7a983c5 in Object::fetch (this=<optimized out>, xref=<optimized
out>, obj=obj@entry=0x7ffffffe0080, recursion=recursion@entry=429) at
Object.cc:122
#30 0x00007ffff7a371dd in Dict::lookup (this=<optimized out>,
key=key@entry=0x7ffff7b16918 "Length", obj=obj@entry=0x7ffffffe0080,
recursion=recursion@entry=429) at Dict.cc:261
[...]
#1177 0x00007ffff7a2c85a in Catalog::getPage (this=0x64c3a0, i=i@entry=1) at
Catalog.cc:241
#1178 0x00007ffff7aa51cf in PDFDoc::getPage (this=<optimized out>,
page=page@entry=1) at PDFDoc.cc:2090
#1179 0x00000000004045eb in JSInfo::scan (this=this@entry=0x7fffffffdb70,
nPages=1) at JSInfo.cc:168
#1180 0x0000000000404b31 in JSInfo::scanJS (this=this@entry=0x7fffffffdb70,
nPages=<optimized out>) at JSInfo.cc:90
#1181 0x00000000004036c5 in printInfo (doc=doc@entry=0x64bf00,
uMap=uMap@entry=0x64bc10, filesize=384218, multiPage=multiPage@entry=false) at
pdfinfo.cc:349
#1182 0x00000000004028de in main (argc=2, argv=<optimized out>) at
pdfinfo.cc:605

}}}</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>