diff options
author | LE GARREC Vincent <gitlab-freedesktop@le-garrec.fr> | 2019-04-17 10:59:34 +0000 |
---|---|---|
committer | Albert Astals Cid <tsdgeos@yahoo.es> | 2019-04-17 10:59:34 +0000 |
commit | 97bbfd67d7fa4d633e10e3dc90fd523051607836 (patch) | |
tree | c360a683660f4dbe91f76dd69b8ce72d9a4cbe31 | |
parent | d1223ff2890a028834d1bdccb8984dc58575eda1 (diff) |
ofz-11248: Use-of-uninitialized-value in Parser::makeStream
-rw-r--r-- | poppler/Hints.cc | 10 | ||||
-rw-r--r-- | poppler/XRef.cc | 4 |
2 files changed, 9 insertions, 5 deletions
diff --git a/poppler/Hints.cc b/poppler/Hints.cc index aeb7542c..05d2f74d 100644 --- a/poppler/Hints.cc +++ b/poppler/Hints.cc @@ -138,10 +138,12 @@ Hints::Hints(BaseStream *str, Linearization *linearization, XRef *xref, Security 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 68f92d05..87a08c7d 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 @@ XRefEntry *XRef::getEntry(int i, bool complainIfMissing) } 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 |