From 8a11feacc32aa5dcf0130d7499535624805fc87e Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Thu, 22 Oct 2020 15:19:48 -0400 Subject: Avoid leak by resolving object streams more than once (fuzz issue 23642) --- libqpdf/QPDF.cc | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'libqpdf/QPDF.cc') 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()) -- cgit v1.2.3-54-g00ecf