You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2022/02/09 18:13:00 UTC
svn commit: r1897908 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading: PDMeshBasedShadingType.java PDShadingType4.java PDShadingType5.java
Author: tilman
Date: Wed Feb 9 18:13:00 2022
New Revision: 1897908
URL: http://svn.apache.org/viewvc?rev=1897908&view=rev
Log:
PDFBOX-5373: avoid NullPointerException
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDMeshBasedShadingType.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType4.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType5.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDMeshBasedShadingType.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDMeshBasedShadingType.java?rev=1897908&r1=1897907&r2=1897908&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDMeshBasedShadingType.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDMeshBasedShadingType.java Wed Feb 9 18:13:00 2022
@@ -68,8 +68,9 @@ abstract class PDMeshBasedShadingType ex
}
PDRange rangeX = getDecodeForParameter(0);
PDRange rangeY = getDecodeForParameter(1);
- if (Float.compare(rangeX.getMin(), rangeX.getMax()) == 0
- || Float.compare(rangeY.getMin(), rangeY.getMax()) == 0)
+ if (rangeX == null || rangeY == null ||
+ Float.compare(rangeX.getMin(), rangeX.getMax()) == 0 ||
+ Float.compare(rangeY.getMin(), rangeY.getMax()) == 0)
{
return Collections.emptyList();
}
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType4.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType4.java?rev=1897908&r1=1897907&r2=1897908&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType4.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType4.java Wed Feb 9 18:13:00 2022
@@ -99,7 +99,8 @@ public class PDShadingType4 extends PDTr
}
PDRange rangeX = getDecodeForParameter(0);
PDRange rangeY = getDecodeForParameter(1);
- if (Float.compare(rangeX.getMin(), rangeX.getMax()) == 0 ||
+ if (rangeX == null || rangeY == null ||
+ Float.compare(rangeX.getMin(), rangeX.getMax()) == 0 ||
Float.compare(rangeY.getMin(), rangeY.getMax()) == 0)
{
return Collections.emptyList();
@@ -108,6 +109,10 @@ public class PDShadingType4 extends PDTr
for (int i = 0; i < colRange.length; ++i)
{
colRange[i] = getDecodeForParameter(2 + i);
+ if (colRange[i] == null)
+ {
+ throw new IOException("Range missing in shading /Decode entry");
+ }
}
List<ShadedTriangle> list = new ArrayList<>();
long maxSrcCoord = (long) Math.pow(2, getBitsPerCoordinate()) - 1;
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType5.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType5.java?rev=1897908&r1=1897907&r2=1897908&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType5.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/PDShadingType5.java Wed Feb 9 18:13:00 2022
@@ -93,7 +93,8 @@ public class PDShadingType5 extends PDTr
}
PDRange rangeX = getDecodeForParameter(0);
PDRange rangeY = getDecodeForParameter(1);
- if (Float.compare(rangeX.getMin(), rangeX.getMax()) == 0 ||
+ if (rangeX == null || rangeY == null ||
+ Float.compare(rangeX.getMin(), rangeX.getMax()) == 0 ||
Float.compare(rangeY.getMin(), rangeY.getMax()) == 0)
{
return Collections.emptyList();
@@ -103,6 +104,10 @@ public class PDShadingType5 extends PDTr
for (int i = 0; i < colRange.length; ++i)
{
colRange[i] = getDecodeForParameter(2 + i);
+ if (colRange[i] == null)
+ {
+ throw new IOException("Range missing in shading /Decode entry");
+ }
}
List<Vertex> vlist = new ArrayList<>();
long maxSrcCoord = (long) Math.pow(2, getBitsPerCoordinate()) - 1;