Christian S. created PDFBOX-2008:
------------------------------------
Summary: Off-by-one error in BaseParser.readGenerationNumber()
Key: PDFBOX-2008
URL: https://issues.apache.org/jira/browse/PDFBOX-2008
Project: PDFBox
Issue Type: Bug
Affects Versions: 1.8.4
Reporter: Christian S.
wrong:
if(retval < 0 || retval >= GENERATION_NUMBER_THRESHOLD) ...
correct:
if(retval < 0 || retval > GENERATION_NUMBER_THRESHOLD) ...
The method comment describes the correct behavior:
"if the integer value has more than the maximum object revision (i.e. : bigger
than {@link #GENERATION_NUMBER_THRESHOLD}) ..."
This is not a theoretical bug. I've scanned our database of quite a few pdf
documents and found one which were not readable / mergeable by PdfBox:
java.io.IOException: Generation Number '65535' has more than 5 digits
at
org.apache.pdfbox.pdfparser.BaseParser.readGenerationNumber(BaseParser.java:1629)
at org.apache.pdfbox.pdfparser.PDFParser.parseObject(PDFParser.java:574)
at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:194)
at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1219)
at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:1186)
at
org.apache.pdfbox.util.PDFMergerUtility.mergeDocuments(PDFMergerUtility.java:191)
--
This message was sent by Atlassian JIRA
(v6.2#6252)