Commit 19a8d3fea22ebaf68ae65ac871b20eb7e0e62bc7

Authored by Jay Berkenbilt
1 parent 32251497

Add test case of dangling ref not found until xref reconstruction

qpdf/qtest/dangling-refs.test
... ... @@ -14,7 +14,7 @@ cleanup();
14 14  
15 15 my $td = new TestDriver('dangling-refs');
16 16  
17   -my @dangling = (qw(minimal dangling-refs));
  17 +my @dangling = (qw(minimal dangling-refs dangling-bad-xref));
18 18 my $n_tests = 2 * scalar(@dangling);
19 19  
20 20 foreach my $f (@dangling)
... ...
qpdf/qtest/qpdf/dangling-bad-xref-dangling-out.pdf 0 → 100644
No preview for this file type
qpdf/qtest/qpdf/dangling-bad-xref-dangling.out 0 → 100644
  1 +WARNING: dangling-bad-xref.pdf: file is damaged
  2 +WARNING: dangling-bad-xref.pdf (object 7 0, offset 10000): expected n n obj
  3 +WARNING: dangling-bad-xref.pdf: Attempting to reconstruct cross-reference table
  4 +new object: 13 0 R
  5 +all objects
  6 +1 0 R
  7 +2 0 R
  8 +3 0 R
  9 +4 0 R
  10 +5 0 R
  11 +6 0 R
  12 +7 0 R
  13 +8 0 R
  14 +9 0 R
  15 +10 0 R
  16 +11 0 R
  17 +12 0 R
  18 +13 0 R
  19 +test 53 done
... ...
qpdf/qtest/qpdf/dangling-bad-xref.pdf 0 → 100644
  1 +%PDF-1.3
  2 +%¿÷¢þ
  3 +%QDF-1.0
  4 +
  5 +1 0 obj
  6 +<<
  7 + /Pages 2 0 R
  8 + /Type /Catalog
  9 + /Dangling 8 0 R
  10 + /AlsoDangling [
  11 + 9 0 R
  12 + <<
  13 + /yes 2 0 R
  14 + /no 10 0 R
  15 + /nope 8 0 R
  16 + >>
  17 + ]
  18 +>>
  19 +endobj
  20 +
  21 +2 0 obj
  22 +<<
  23 + /Count 1
  24 + /Kids [
  25 + 3 0 R
  26 + ]
  27 + /Type /Pages
  28 +>>
  29 +endobj
  30 +
  31 +%% Page 1
  32 +3 0 obj
  33 +<<
  34 + /Contents 4 0 R
  35 + /MediaBox [
  36 + 0
  37 + 0
  38 + 612
  39 + 792
  40 + ]
  41 + /Parent 2 0 R
  42 + /Resources <<
  43 + /Font <<
  44 + /F1 6 0 R
  45 + >>
  46 + /ProcSet 7 0 R
  47 + >>
  48 + /Type /Page
  49 +>>
  50 +endobj
  51 +
  52 +%% Contents for page 1
  53 +4 0 obj
  54 +<<
  55 + /Length 5 0 R
  56 +>>
  57 +stream
  58 +BT
  59 + /F1 24 Tf
  60 + 72 720 Td
  61 + (Potato) Tj
  62 +ET
  63 +endstream
  64 +endobj
  65 +
  66 +5 0 obj
  67 +44
  68 +endobj
  69 +
  70 +6 0 obj
  71 +<<
  72 + /BaseFont /Helvetica
  73 + /Encoding /WinAnsiEncoding
  74 + /Name /F1
  75 + /Subtype /Type1
  76 + /Type /Font
  77 +>>
  78 +endobj
  79 +
  80 +7 0 obj
  81 +[
  82 + /PDF
  83 + /Text
  84 +]
  85 +endobj
  86 +
  87 +11 0 obj
  88 +[
  89 + 12 0 R
  90 +]
  91 +endobj
  92 +
  93 +xref
  94 +0 8
  95 +0000000000 65535 f
  96 +0000000025 00000 n
  97 +0000000195 00000 n
  98 +0000000277 00000 n
  99 +0000000492 00000 n
  100 +0000000591 00000 n
  101 +0000000610 00000 n
  102 +0000010000 00000 n
  103 +trailer <<
  104 + /Root 1 0 R
  105 + /Size 8
  106 + /ID [<7141a6cf32de469328cf0f51982b5f89><7141a6cf32de469328cf0f51982b5f89>]
  107 +>>
  108 +startxref
  109 +793
  110 +%%EOF
... ...