2e1d9e
From b54e1fc3e0d2600621a28d50f9f085b9e38619c2 Mon Sep 17 00:00:00 2001
2e1d9e
From: Adam Reichold <adam.reichold@t-online.de>
2e1d9e
Date: Fri, 1 Feb 2019 08:42:27 +0100
2e1d9e
Subject: [PATCH] Also defend against requests for negative XRef indices.
2e1d9e
 oss-fuzz/12797
2e1d9e
2e1d9e
---
2e1d9e
 poppler/XRef.cc | 5 +++++
2e1d9e
 1 file changed, 5 insertions(+)
2e1d9e
2e1d9e
diff --git a/poppler/XRef.cc b/poppler/XRef.cc
2e1d9e
index d042d1f4..ac2cd0ce 100644
2e1d9e
--- a/poppler/XRef.cc
2e1d9e
+++ b/poppler/XRef.cc
2e1d9e
@@ -1565,6 +1565,11 @@ DummyXRefEntry dummyXRefEntry;
2e1d9e
 
2e1d9e
 XRefEntry *XRef::getEntry(int i, GBool complainIfMissing)
2e1d9e
 {
2e1d9e
+  if (unlikely(i < 0)) {
2e1d9e
+    error(errInternal, -1, "Request for invalid XRef entry [{0:d}]", i);
2e1d9e
+    return &dummyXRefEntry;
2e1d9e
+  }
2e1d9e
+
2e1d9e
   if (i >= size || entries[i].type == xrefEntryNone) {
2e1d9e
 
2e1d9e
     if ((!xRefStream) && mainXRefEntriesOffset) {
2e1d9e
-- 
2e1d9e
2.20.1
2e1d9e