Commit a367e56afc8ef1ae02ce3042d429550a46d39bb3
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); | ... | ... |