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 2022/05/31 17:55:39 UTC

svn commit: r1901466 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/RandomAccessReadDataStream.java

Author: lehmi
Date: Tue May 31 17:55:39 2022
New Revision: 1901466

URL: http://svn.apache.org/viewvc?rev=1901466&view=rev
Log:
PDFBOX-5435: fix array read

Modified:
    pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/RandomAccessReadDataStream.java

Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/RandomAccessReadDataStream.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/RandomAccessReadDataStream.java?rev=1901466&r1=1901465&r2=1901466&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/RandomAccessReadDataStream.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/RandomAccessReadDataStream.java Tue May 31 17:55:39 2022
@@ -44,10 +44,12 @@ class RandomAccessReadDataStream extends
         this.randomAccessRead = randomAccessRead;
         length = randomAccessRead.length();
         data = new byte[(int) length];
-        int bytesRead = randomAccessRead.read(data, 0, (int) length);
-        while (bytesRead > -1 && bytesRead < length)
+        int remainingBytes = data.length;
+        int amountRead;
+        while ((amountRead = randomAccessRead.read(data, data.length - remainingBytes,
+                remainingBytes)) > 0)
         {
-            bytesRead += randomAccessRead.read(data, bytesRead, (int) length - bytesRead);
+            remainingBytes -= amountRead;
         }
         randomAccessRead.seek(0);
     }