Author: tilman
Date: Sun Jul 13 08:00:24 2025
New Revision: 1927176
URL: http://svn.apache.org/viewvc?rev=1927176&view=rev
Log:
PDFBOX-6035: prevent infinite loop
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType4.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDTriangleBasedShadingType.java
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType4.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType4.java?rev=1927176&r1=1927175&r2=1927176&view=diff
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType4.java
(original)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType4.java
Sun Jul 13 08:00:24 2025
@@ -191,7 +191,8 @@ public class PDShadingType4 extends PDTr
}
break;
default:
- LOG.warn("bad flag: " + flag);
+ LOG.warn("bad flag " + flag + ", aborting");
+ eof = true;
break;
}
}
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDTriangleBasedShadingType.java
URL:
http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDTriangleBasedShadingType.java?rev=1927176&r1=1927175&r2=1927176&view=diff
==============================================================================
---
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDTriangleBasedShadingType.java
(original)
+++
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDTriangleBasedShadingType.java
Sun Jul 13 08:00:24 2025
@@ -194,6 +194,10 @@ abstract class PDTriangleBasedShadingTyp
PDRange rangeX, PDRange rangeY, PDRange[]
colRangeTab,
Matrix matrix, AffineTransform xform) throws
IOException
{
+ if (bitsPerCoordinate <= 0 || numberOfColorComponents <= 0 ||
bitsPerColorComponent <= 0)
+ {
+ throw new IOException("nothing to read, check bitsPerCoordinate,
numberOfColorComponents and bitsPerColorComponent");
+ }
float[] colorComponentTab = new float[numberOfColorComponents];
long x = input.readBits(bitsPerCoordinate);
long y = input.readBits(bitsPerCoordinate);