Please sign in to comment.
Detect recursion loops resolving objects (fixes #51)
During parsing of an object, sometimes parts of the object have to be resolved. An example is stream lengths. If such an object directly or indirectly points to the object being parsed, it can cause an infinite loop. Guard against all cases of re-entrant resolution of objects.
- Loading branch information...
Showing with 49 additions and 1 deletion.
|@@ -0,0 +1,6 @@|
|WARNING: issue-51.pdf: reported number of objects (0) inconsistent with actual number of objects (9)|
|WARNING: issue-51.pdf (object 7 0, file position 553): expected endobj|
|WARNING: issue-51.pdf (object 1 0, file position 359): expected endobj|
|WARNING: issue-51.pdf (file position 70): loop detected resolving object 2 0|
|WARNING: issue-51.pdf (object 2 0, file position 71): attempting to recover stream length|
|issue-51.pdf (object 2 0, file position 71): unable to recover stream data|
BIN +977 Bytes qpdf/qtest/qpdf/issue-51.pdf
Binary file not shown.