diff options
author | Jay Berkenbilt <ejb@ql.org> | 2020-10-22 21:19:48 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2020-10-22 21:39:36 +0200 |
commit | 8a11feacc32aa5dcf0130d7499535624805fc87e (patch) | |
tree | 5e5ba87c4e6bad0740e0635de8599951dbeeedcd /libqpdf | |
parent | 30bb4c64eeddef030132e467c6388d5695a4117c (diff) | |
download | qpdf-8a11feacc32aa5dcf0130d7499535624805fc87e.tar.zst |
Avoid leak by resolving object streams more than once (fuzz issue 23642)
Diffstat (limited to 'libqpdf')
-rw-r--r-- | libqpdf/QPDF.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc index 2ffd4cc6..d256e444 100644 --- a/libqpdf/QPDF.cc +++ b/libqpdf/QPDF.cc @@ -2082,6 +2082,11 @@ QPDF::resolve(int objid, int generation) void QPDF::resolveObjectsInStream(int obj_stream_number) { + if (this->m->resolved_object_streams.count(obj_stream_number)) + { + return; + } + this->m->resolved_object_streams.insert(obj_stream_number); // Force resolution of object stream QPDFObjectHandle obj_stream = getObjectByID(obj_stream_number, 0); if (! obj_stream.isStream()) |