diff options
author | Jay Berkenbilt <ejb@ql.org> | 2019-08-21 18:50:36 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2019-08-22 23:55:16 +0200 |
commit | 225cd9dac27d685833156dfc249838cda11cd2ef (patch) | |
tree | c839a3bcc99c08150459ca24de5750f4e5a04e10 /libqpdf/QPDFObjectHandle.cc | |
parent | ae5bd7102da5d4b456f08790a0efc04c1c42b4a5 (diff) | |
download | qpdf-225cd9dac27d685833156dfc249838cda11cd2ef.tar.zst |
Protect against coding error of re-entrant parsing
Diffstat (limited to 'libqpdf/QPDFObjectHandle.cc')
-rw-r--r-- | libqpdf/QPDFObjectHandle.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index 1b3b64b0..6240395d 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -1714,7 +1714,11 @@ QPDFObjectHandle::parseInternal(PointerHolder<InputSource> input, // This method must take care not to resolve any objects. Don't // check the type of any object without first ensuring that it is // a direct object. Otherwise, doing so may have the side effect - // of reading the object and changing the file pointer. + // of reading the object and changing the file pointer. If you do + // this, it will cause a logic error to be thrown from + // QPDF::inParse(). + + QPDF::ParseGuard pg(context); empty = false; |