File poppler-CVE-2022-27337.patch of Package poppler.31252
Index: poppler-0.79.0/poppler/Hints.cc
===================================================================
--- poppler-0.79.0.orig/poppler/Hints.cc
+++ poppler-0.79.0/poppler/Hints.cc
@@ -193,13 +193,31 @@ void Hints::readTables(BaseStream *str,
Stream *s = str->makeSubStream(hintsOffset, false, hintsLength, Object(objNull));
s->reset();
- for (unsigned int i=0; i < hintsLength; i++) { *p++ = s->getChar(); }
+ for (unsigned int i=0; i < hintsLength; i++) {
+ const int c = s->getChar();
+ if (unlikely(c == EOF)) {
+ error(errSyntaxWarning, -1, "Found EOF while reading hints");
+ ok = false;
+ delete s;
+ return;
+ }
+ *p++ = c;
+ }
delete s;
if (hintsOffset2 && hintsLength2) {
s = str->makeSubStream(hintsOffset2, false, hintsLength2, Object(objNull));
s->reset();
- for (unsigned int i=0; i < hintsLength2; i++) { *p++ = s->getChar(); }
+ for (unsigned int i=0; i < hintsLength2; i++) {
+ const int c = s->getChar();
+ if (unlikely(c == EOF)) {
+ error(errSyntaxWarning, -1, "Found EOF while reading hints");
+ ok = false;
+ delete s;
+ return;
+ }
+ *p++ = c;
+ }
delete s;
}