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 1952 m->last_object_description += "object ";
1953 1953 for (auto const& iter: offsets) {
1954 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 1958 int offset = iter.second;
1958 1959 input->seek(offset, SEEK_SET);
1959 1960 QPDFObjectHandle oh = readObjectInStream(input, iter.first);
... ...