Jesse Long created PDFBOX-2869:
----------------------------------

             Summary: Corruption in ScratchFileBuffer
                 Key: PDFBOX-2869
                 URL: https://issues.apache.org/jira/browse/PDFBOX-2869
             Project: PDFBox
          Issue Type: Bug
          Components: Parsing
    Affects Versions: 2.0.0
            Reporter: Jesse Long


Under some specific circumstances, ScratchFileBuffer can get corrupted when 
reading.

These circumstances are, when the completely written buffer length is a 
multiple of 4080, and the read(byte[], int, int) method is used to read till 
the end of the buffer, followed by a seek().

Each page contains 4080 bytes. The last 8 bytes are a pointer to the next page. 
This next page pointer is only written if the next page is needed, not if the 
page is full but no further pages are needed.

The bug is in the read(byte[], int, int) method which, after reading all bytes 
from a page, tries to move to the next page, regardless of whether or not there 
is actually a next page.

The read(byte[], int, int) method must be changed to only read the next page 
pointer if the end of buffer is not reached.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to