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)

Reply via email to