aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf
diff options
context:
space:
mode:
authorJay Berkenbilt <jberkenbilt@users.noreply.github.com>2024-01-20 18:43:07 +0100
committerGitHub <noreply@github.com>2024-01-20 18:43:07 +0100
commit4660e23262fd3606d0b9ef7db9bcc315783b16e3 (patch)
tree636f7896d7d7a347834f71968d3a232309d4a24e /libqpdf
parent7be985b032d959fd9763088e6b36c7a923895b4e (diff)
parentf0343565edd3679210c598d3361ad9530829e73c (diff)
downloadqpdf-4660e23262fd3606d0b9ef7db9bcc315783b16e3.tar.zst
Merge pull request #1128 from m-holger/reconstruct
Tighten checks for invalid indirect references during xref reconstru…
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