From 2939dfaf6638acda74e8627fcc717a3c42f9ab08 Mon Sep 17 00:00:00 2001 From: Brian Huisman Date: Mon, 26 Feb 2024 03:29:02 -0500 Subject: [PATCH] Check for binary content in formatContent() before a problematic regexp (#676) * Move formatContent check for binary content Some PDF files manage to serve binary content (a font, or an image, etc.) to the formatContent() method which only accepts text document streams. Since (strings) in PDF document streams can contain binary content (that gets decoded by a font library, for instance) we must test the document stream for text-only content EXCLUDING (string) content. Previously the check for text-only content was done *after* a regexp removing the (string)s from the stream, recursively extending the regexp to check for balanced parentheses. However for a sufficiently long binary stream, this might create a regexp long enough to cause a PHP error. The solution is to move the check for binary content *before* this (string)-removing regexp. Simplify the binary check by truncating the document stream at the first open parenthesis, which indicates the start of a (string), then testing what remains for valid UTF-8. This makes the later check for binary content unnecessary and it has been removed. Future work on this issue should be done to determine why PdfParser is creating PDFObject objects from binary data in the first place. * Update PDFObject.php Avoid using a throwaway variable. * Update PDFObject.php Don't update this indentation. * Update src/Smalot/PdfParser/PDFObject.php Use strict false check. Co-authored-by: Konrad Abicht --------- Co-authored-by: Konrad Abicht --- samples/bugs/Issue668.pdf | Bin 0 -> 96222 bytes src/Smalot/PdfParser/PDFObject.php | 21 ++++++++++---------- tests/PHPUnit/Integration/PDFObjectTest.php | 10 ++++++++++ 3 files changed, 20 insertions(+), 11 deletions(-) create mode 100644 samples/bugs/Issue668.pdf diff --git a/samples/bugs/Issue668.pdf b/samples/bugs/Issue668.pdf new file mode 100644 index 0000000000000000000000000000000000000000..dc5025437dab963dfd383ac22604d6c1e0af65d3 GIT binary patch literal 96222 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%0As~w#5d- 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�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 L`S?`z)M)<~fhOmq literal 0 HcmV?d00001 diff --git a/src/Smalot/PdfParser/PDFObject.php b/src/Smalot/PdfParser/PDFObject.php index 40973da0..8d1d14de 100644 --- a/src/Smalot/PdfParser/PDFObject.php +++ b/src/Smalot/PdfParser/PDFObject.php @@ -214,6 +214,16 @@ private function formatContent(?string $content): string return ''; } + // Outside of (String) content in PDF document streams, all + // text should conform to UTF-8. Test for binary content by + // deleting everything after the first open-parenthesis ( which + // indicates the beginning of a string. Then test what remains + // for valid UTF-8. If it's not UTF-8, return an empty string + // as this $content is most likely binary. + if (false === mb_check_encoding(preg_replace('/\(.*$/s', '', $content), 'UTF-8')) { + return ''; + } + // Find all strings () and replace them so they aren't affected // by the next steps $pdfstrings = []; @@ -261,17 +271,6 @@ private function formatContent(?string $content): string ); } - // Now that all strings and dictionaries are hidden, the only - // PDF commands left should all be plain text. - // Detect text encoding of the current string to prevent reading - // content streams that are images, etc. This prevents PHP - // error messages when JPEG content is sent to this function - // by the sample file '12249.pdf' from: - // https://github.com/smalot/pdfparser/issues/458 - if (false === mb_detect_encoding($content, null, true)) { - return ''; - } - // Normalize white-space in the document stream $content = preg_replace('/\s{2,}/', ' ', $content); diff --git a/tests/PHPUnit/Integration/PDFObjectTest.php b/tests/PHPUnit/Integration/PDFObjectTest.php index 9ec68043..025c11b1 100644 --- a/tests/PHPUnit/Integration/PDFObjectTest.php +++ b/tests/PHPUnit/Integration/PDFObjectTest.php @@ -274,6 +274,16 @@ public function testFormatContent(): void $cleaned = $formatContent->invoke($this->getPdfObjectInstance(new Document()), $content); $this->assertEquals('', $cleaned); + + // See: https://github.com/smalot/pdfparser/issues/668 + $filename = $this->rootDir.'/samples/bugs/Issue668.pdf'; + + $parser = $this->getParserInstance(); + $document = $parser->parseFile($filename); + $pages = $document->getPages(); + + // Binary check is done before a regexp that causes an error + $this->assertStringContainsString('Marko Nestorović PR', $pages[0]->getText()); } public function testGetSectionsText(): void