File 0001-Fix-opening-files-by-some-generators-that-are-a-bit-.patch of Package poppler-qt5.29742

diff --unified --recursive --text poppler-0.79.0.orig/poppler/XRef.cc poppler-0.79.0.new/poppler/XRef.cc
--- poppler-0.79.0.orig/poppler/XRef.cc	2021-02-08 10:59:02.753940841 +0800
+++ poppler-0.79.0.new/poppler/XRef.cc	2021-02-08 11:02:35.713518176 +0800
@@ -44,6 +44,7 @@
 #include <ctype.h>
 #include <limits.h>
 #include <float.h>
+#include <limits>
 #include "goo/gfile.h"
 #include "goo/gmem.h"
 #include "Object.h"
@@ -781,8 +782,13 @@
       gen = (gen << 8) + c;
     }
     if (gen > INT_MAX) {
-      error(errSyntaxError, -1, "Gen inside xref table too large (bigger than INT_MAX)");
-      return false;
+        if (i == 0 && gen == std::numeric_limits<uint32_t>::max()) {
+            // workaround broken generators
+            gen = 65535;
+        } else {
+            error(errSyntaxError, -1, "Gen inside xref table too large (bigger than INT_MAX)");
+            return false;
+        }
     }
     if (entries[i].offset == -1) {
       switch (type) {
openSUSE Build Service is sponsored by