ofz-11248: Use-of-uninitialized-value in Parser::makeStream
diff --git a/poppler/Hints.cc b/poppler/Hints.cc
index aeb7542..05d2f74 100644
--- a/poppler/Hints.cc
+++ b/poppler/Hints.cc
@@ -138,10 +138,12 @@
nPages = 0;
}
- memset(pageLength, 0, nPages * sizeof(unsigned int));
- memset(pageOffset, 0, nPages * sizeof(unsigned int));
- memset(numSharedObject, 0, nPages * sizeof(unsigned int));
- memset(pageObjectNum, 0, nPages * sizeof(int));
+ if (nPages != 0) {
+ memset(pageLength, 0, nPages * sizeof(unsigned int));
+ memset(pageOffset, 0, nPages * sizeof(unsigned int));
+ memset(numSharedObject, 0, nPages * sizeof(unsigned int));
+ memset(pageObjectNum, 0, nPages * sizeof(int));
+ }
groupLength = nullptr;
groupOffset = nullptr;
diff --git a/poppler/XRef.cc b/poppler/XRef.cc
index 68f92d0..87a08c7 100644
--- a/poppler/XRef.cc
+++ b/poppler/XRef.cc
@@ -27,6 +27,7 @@
// Copyright (C) 2016 Jakub Alba <jakubalba@gmail.com>
// Copyright (C) 2018, 2019 Adam Reichold <adam.reichold@t-online.de>
// Copyright (C) 2018 Tobias Deiminger <haxtibal@posteo.de>
+// Copyright (C) 2019 LE GARREC Vincent <legarrec.vincent@gmail.com>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
@@ -1576,7 +1577,8 @@
}
if (!parseEntry(mainXRefEntriesOffset + 20*i, &entries[i])) {
- error(errSyntaxError, -1, "Failed to parse XRef entry [{0:d}].", i);
+ error(errSyntaxError, -1, "Failed to parse XRef entry [{0:d}].", i);
+ return &dummyXRefEntry;
}
} else {
// Read XRef tables until the entry we're looking for is found