You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2018/10/21 10:59:47 UTC
svn commit: r1844478 - in /pdfbox/trunk: ./
pdfbox/src/main/java/org/apache/pdfbox/pdfparser/InputStreamSource.java
Author: lehmi
Date: Sun Oct 21 10:59:47 2018
New Revision: 1844478
URL: http://svn.apache.org/viewvc?rev=1844478&view=rev
Log:
PDFBOX-4351: handle premature end of stream to avoid IOOBE
Modified:
pdfbox/trunk/ (props changed)
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/InputStreamSource.java
Propchange: pdfbox/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Oct 21 10:59:47 2018
@@ -1,3 +1,3 @@
-/pdfbox/branches/2.0:1760418,1761484,1762133,1763609,1779822,1780783,1780789,1782684,1784450,1792784,1795704,1795712,1799081-1799082,1814046,1814285,1814459,1824914,1825811,1825820,1825912
+/pdfbox/branches/2.0:1760418,1761484,1762133,1763609,1779822,1780783,1780789,1782684,1784450,1792784,1795704,1795712,1799081-1799082,1814046,1814285,1814459,1824914,1825811,1825820,1825912,1844477
/pdfbox/branches/no-awt:1618517-1621410
/pdfbox/no-awt:1618514-1618516
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/InputStreamSource.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/InputStreamSource.java?rev=1844478&r1=1844477&r2=1844478&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/InputStreamSource.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/InputStreamSource.java Sun Oct 21 10:59:47 2018
@@ -52,16 +52,30 @@ final class InputStreamSource implements
public int read(byte[] b) throws IOException
{
int n = input.read(b);
- position += n;
- return n;
+ if (n > 0)
+ {
+ position += n;
+ return n;
+ }
+ else
+ {
+ return -1;
+ }
}
@Override
public int read(byte[] b, int offset, int length) throws IOException
{
int n = input.read(b, offset, length);
- position += n;
- return n;
+ if (n > 0)
+ {
+ position += n;
+ return n;
+ }
+ else
+ {
+ return -1;
+ }
}
@Override
@@ -111,9 +125,16 @@ final class InputStreamSource implements
while (len > 0)
{
int n = this.read(bytes, off, len);
- off += n;
- len -= n;
- position += n;
+ if (n > 0)
+ {
+ off += n;
+ len -= n;
+ position += n;
+ }
+ else
+ {
+ break;
+ }
}
return bytes;
}