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 2020/05/17 15:42:10 UTC
svn commit: r1877860 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java
Author: lehmi
Date: Sun May 17 15:42:09 2020
New Revision: 1877860
URL: http://svn.apache.org/viewvc?rev=1877860&view=rev
Log:
PDFBOX-4836: ensure that all needed bytes are read
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java?rev=1877860&r1=1877859&r2=1877860&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/image/SampledImageReader.java Sun May 17 15:42:09 2020
@@ -35,6 +35,7 @@ import org.apache.commons.logging.LogFac
import org.apache.pdfbox.cos.COSArray;
import org.apache.pdfbox.cos.COSNumber;
import org.apache.pdfbox.filter.DecodeOptions;
+import org.apache.pdfbox.io.IOUtils;
import org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace;
import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray;
import org.apache.pdfbox.pdmodel.graphics.color.PDIndexed;
@@ -97,7 +98,7 @@ final class SampledImageReader
for (int y = 0; y < height; y++)
{
int x = 0;
- int readLen = iis.read(buff);
+ int readLen = (int) IOUtils.populateBuffer(iis, buff);
for (int r = 0; r < rowLen && r < readLen; r++)
{
int byteValue = buff[r];
@@ -301,7 +302,7 @@ final class SampledImageReader
for (int y = 0; y < starty + scanHeight; y++)
{
int x = 0;
- int readLen = iis.read(buff);
+ int readLen = (int) IOUtils.populateBuffer(iis, buff);
if (y < starty || y % currentSubsampling > 0)
{
continue;
@@ -381,7 +382,7 @@ final class SampledImageReader
if (startx == 0 && starty == 0 && scanWidth == width && scanHeight == height && currentSubsampling == 1)
{
// we just need to copy all sample data, then convert to RGB image.
- long inputResult = input.read(bank);
+ long inputResult = IOUtils.populateBuffer(input, bank);
if (Long.compare(inputResult, width * height * (long) numComponents) != 0)
{
LOG.debug("Tried reading " + width * height * (long) numComponents + " bytes but only " + inputResult + " bytes read");
@@ -398,7 +399,7 @@ final class SampledImageReader
int i = 0;
for (int y = 0; y < starty + scanHeight; ++y)
{
- long inputResult = input.read(tempBytes);
+ long inputResult = IOUtils.populateBuffer(input, tempBytes);
if (Long.compare(inputResult, tempBytes.length) != 0)
{