Errors in Stream Object Parsing
-------------------------------

                 Key: PDFBOX-576
                 URL: https://issues.apache.org/jira/browse/PDFBOX-576
             Project: PDFBox
          Issue Type: Bug
          Components: Parsing
    Affects Versions: 0.8.0-incubator, 1.0.0
            Reporter: Vincent Hennebert
         Attachments: fixStreamParsing.diff

The readUntilEndStream method in org.apache.pdfbox.pdfparser.BaseParser doesn't 
work properly. The read(byte[]) method doesn't guarantee that it will fill the 
buffer, and as long as the buffer hasn't been filled the value of nextIdx will 
be wrong. For example, say the call to read returns 5 bytes in the buffer. 
nextIdx will have value 5, i.e. points to a yet uninitialized byte that will be 
written to the output stream. Same at the next loop iteration, and in the end 
the stream will start with 4 null bytes that don't belong to the original one.

Also, if the stream is terminated by endobj instead of endstream, the possible 
bytes that are at the beginning of the buffer and precede endobj won't be 
written out. The for loop will stop at the end of the buffer instead of looping 
back to the beginning of it if necessary (say, if endobj happens to occupy 
slots 3 to 8 of the buffer).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to