Commit c7a4ac4dd309b98aa7bc8ed22c7cdedcfd313bf4

Authored by m-holger
1 parent 7edffb40

Apply sanity checks on dangling reference object ids encountered before

the xref table has been loaded
Showing 1 changed file with 1 additions and 1 deletions
libqpdf/QPDF_objects.cc
@@ -1845,7 +1845,7 @@ QPDF::getObjectForParser(int id, int gen, bool parse_pdf) @@ -1845,7 +1845,7 @@ QPDF::getObjectForParser(int id, int gen, bool parse_pdf)
1845 if (auto iter = m->obj_cache.find(og); iter != m->obj_cache.end()) { 1845 if (auto iter = m->obj_cache.find(og); iter != m->obj_cache.end()) {
1846 return iter->second.object; 1846 return iter->second.object;
1847 } 1847 }
1848 - if (m->xref_table.contains(og) || !m->parsed) { 1848 + if (m->xref_table.contains(og) || (!m->parsed && og.getObj() < m->xref_table_max_id)) {
1849 return m->obj_cache.insert({og, QPDFObject::create<QPDF_Unresolved>(this, og)}) 1849 return m->obj_cache.insert({og, QPDFObject::create<QPDF_Unresolved>(this, og)})
1850 .first->second.object; 1850 .first->second.object;
1851 } 1851 }