From 67e2d795918cbd22c0af5c91b5fecec322548cfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20Elio=20Petten=C3=B2?= Date: Sat, 10 Oct 2020 14:18:34 +0100 Subject: [PATCH] Fix out-of-bound access on some PDFs. (#483) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace the non-emptiness check with a minimum length check — you can't get the second to last item in a list of less than two items. --- CHANGELOG.md | 1 + pdfminer/pdfdocument.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10bf3c1..a31a583 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Fixed - Pass caching parameter to PDFResourceManager in `high_level` functions ([#475](https://github.com/pdfminer/pdfminer.six/pull/475)) +- Fix out-of-bound access on some PDFs ([#483](https://github.com/pdfminer/pdfminer.six/pull/483)) ### Removed - Remove unused rijndael encryption implementation ([#465](https://github.com/pdfminer/pdfminer.six/pull/465)) diff --git a/pdfminer/pdfdocument.py b/pdfminer/pdfdocument.py index 19187ae..108d348 100644 --- a/pdfminer/pdfdocument.py +++ b/pdfminer/pdfdocument.py @@ -669,7 +669,7 @@ class PDFDocument: while kwd is not self.KEYWORD_OBJ: (_, kwd) = self._parser.nexttoken() x.append(kwd) - if x: + if len(x) >= 2: objid1 = x[-2] # #### end hack around malformed pdf files if objid1 != objid: