Commit a367e56afc8ef1ae02ce3042d429550a46d39bb3

Authored by m-holger
1 parent 6d640c56

In QPDF::resolveObjectsInStream avoid creating xref table entries

Invalid entries are created when objects in the stream do not have
an existing xref entry.
Showing 1 changed file with 3 additions and 2 deletions
libqpdf/QPDF.cc
@@ -1952,8 +1952,9 @@ QPDF::resolveObjectsInStream(int obj_stream_number) @@ -1952,8 +1952,9 @@ QPDF::resolveObjectsInStream(int obj_stream_number)
1952 m->last_object_description += "object "; 1952 m->last_object_description += "object ";
1953 for (auto const& iter: offsets) { 1953 for (auto const& iter: offsets) {
1954 QPDFObjGen og(iter.first, 0); 1954 QPDFObjGen og(iter.first, 0);
1955 - QPDFXRefEntry const& entry = m->xref_table[og];  
1956 - if ((entry.getType() == 2) && (entry.getObjStreamNumber() == obj_stream_number)) { 1955 + auto entry = m->xref_table.find(og);
  1956 + if (entry != m->xref_table.end() && entry->second.getType() == 2 &&
  1957 + entry->second.getObjStreamNumber() == obj_stream_number) {
1957 int offset = iter.second; 1958 int offset = iter.second;
1958 input->seek(offset, SEEK_SET); 1959 input->seek(offset, SEEK_SET);
1959 QPDFObjectHandle oh = readObjectInStream(input, iter.first); 1960 QPDFObjectHandle oh = readObjectInStream(input, iter.first);