File poppler-CVE-2022-27337.patch of Package poppler.30682
Index: poppler-0.43.0/poppler/Hints.cc
===================================================================
--- poppler-0.43.0.orig/poppler/Hints.cc
+++ poppler-0.43.0/poppler/Hints.cc
@@ -123,14 +123,30 @@ void Hints::readTables(BaseStream *str,
obj.initNull();
Stream *s = str->makeSubStream(hintsOffset, gFalse, hintsLength, &obj);
s->reset();
- for (Guint i=0; i < hintsLength; i++) { *p++ = s->getChar(); }
+ for (Guint i=0; i < hintsLength; i++) {
+ const int c = s->getChar();
+ if (unlikely(c == EOF)) {
+ error(errSyntaxWarning, -1, "Found EOF while reading hints");
+ delete s;
+ return;
+ }
+ *p++ = c;
+ }
delete s;
if (hintsOffset2 && hintsLength2) {
obj.initNull();
s = str->makeSubStream(hintsOffset2, gFalse, hintsLength2, &obj);
s->reset();
- for (Guint i=0; i < hintsLength2; i++) { *p++ = s->getChar(); }
+ for (Guint i=0; i < hintsLength2; i++) {
+ const int c = s->getChar();
+ if (unlikely(c == EOF)) {
+ error(errSyntaxWarning, -1, "Found EOF while reading hints");
+ delete s;
+ return;
+ }
+ *p++ = c;
+ }
delete s;
}