aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2024-02-06 21:12:41 +0100
committerJay Berkenbilt <ejb@ql.org>2024-02-06 21:12:41 +0100
commit3490090fbc7266dfcf7c80c6766d4d557b314292 (patch)
tree3701db07e037a796fa79a8ec2bd697efa17625f4 /libqpdf
parent7ae095fa091af9a94e0e9bf140280a0519859d98 (diff)
downloadqpdf-3490090fbc7266dfcf7c80c6766d4d557b314292.tar.zst
Detect JSON object whose value is an indirect object
Diffstat (limited to 'libqpdf')
-rw-r--r--libqpdf/QPDF_json.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/libqpdf/QPDF_json.cc b/libqpdf/QPDF_json.cc
index 502f2346..8326e6a5 100644
--- a/libqpdf/QPDF_json.cc
+++ b/libqpdf/QPDF_json.cc
@@ -441,6 +441,10 @@ QPDF::JSONReactor::containerEnd(JSON const& value)
void
QPDF::JSONReactor::replaceObject(QPDFObjectHandle&& replacement, JSON const& value)
{
+ if (replacement.isIndirect()) {
+ error(replacement.getParsedOffset(), "the value of an object may not be an indirect object reference");
+ return;
+ }
auto& tos = stack.back();
auto og = tos.object.getObjGen();
this->pdf.replaceObject(og, replacement);