aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
authorm-holger <m-holger@kubitscheck.org>2024-01-17 15:07:37 +0100
committerm-holger <m-holger@kubitscheck.org>2024-01-17 15:11:57 +0100
commitf0343565edd3679210c598d3361ad9530829e73c (patch)
tree2c887b82e706e4df507d7f6a66e8058b7c123354 /libqpdf
parent6b80e0f14b296c21d38a92e25af72da9bf5757ae (diff)
downloadqpdf-f0343565edd3679210c598d3361ad9530829e73c.tar.zst
Tighten checks for invalid indirect references during xref reconstruction
Diffstat (limited to 'libqpdf')
-rw-r--r--libqpdf/QPDF.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/libqpdf/QPDF.cc b/libqpdf/QPDF.cc
index 8cff3dfd..01158ce2 100644
--- a/libqpdf/QPDF.cc
+++ b/libqpdf/QPDF.cc
@@ -1195,6 +1195,10 @@ QPDF::insertFreeXrefEntry(QPDFObjGen og)
void
QPDF::insertReconstructedXrefEntry(int obj, qpdf_offset_t f1, int f2)
{
+ if (!(obj > 0 && 0 <= f2 && f2 < 65535)) {
+ QTC::TC("qpdf", "QPDF xref overwrite invalid objgen");
+ return;
+ }
QPDFObjGen og(obj, f2);
if (!m->deleted_objects.count(obj)) {
// deleted_objects stores the uncompressed objects removed from the xref table at the start