From 6997797b89eccc8e4395edef2d13718b4b6a6539 Mon Sep 17 00:00:00 2001 From: Tilman Hausherr Date: Fri, 2 Aug 2024 10:01:11 +0000 Subject: [PATCH] PDFBOX-5861: avoid ClassCastException git-svn-id: https://svn.apache.org/repos/asf/pdfbox/trunk@1919643 13f79535-47bb-0310-9956-ffa450edef68 --- .../pdfbox/contentstream/operator/state/SetLineCapStyle.java | 4 ++++ .../pdfbox/contentstream/operator/state/SetLineJoinStyle.java | 4 ++++ .../contentstream/operator/state/SetLineMiterLimit.java | 4 ++++ .../pdfbox/contentstream/operator/state/SetLineWidth.java | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/state/SetLineCapStyle.java b/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/state/SetLineCapStyle.java index 5babf840ab9..0d970b65731 100644 --- a/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/state/SetLineCapStyle.java +++ b/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/state/SetLineCapStyle.java @@ -45,6 +45,10 @@ public void process(Operator operator, List arguments) throws IOExcepti { throw new MissingOperandException(operator, arguments); } + if (!checkArrayTypesClass(arguments, COSNumber.class)) + { + return; + } int lineCapStyle = ((COSNumber)arguments.get( 0 )).intValue(); getContext().getGraphicsState().setLineCap(lineCapStyle); } diff --git a/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/state/SetLineJoinStyle.java b/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/state/SetLineJoinStyle.java index 672ab7e73f9..fbfa40a66fc 100644 --- a/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/state/SetLineJoinStyle.java +++ b/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/state/SetLineJoinStyle.java @@ -47,6 +47,10 @@ public void process(Operator operator, List arguments) throws IOExcepti { throw new MissingOperandException(operator, arguments); } + if (!checkArrayTypesClass(arguments, COSNumber.class)) + { + return; + } int lineJoinStyle = ((COSNumber)arguments.get( 0 )).intValue(); getContext().getGraphicsState().setLineJoin(lineJoinStyle); } diff --git a/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/state/SetLineMiterLimit.java b/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/state/SetLineMiterLimit.java index 9ea935c876c..016fa8d972c 100644 --- a/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/state/SetLineMiterLimit.java +++ b/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/state/SetLineMiterLimit.java @@ -46,6 +46,10 @@ public void process(Operator operator, List arguments) throws IOExcepti { throw new MissingOperandException(operator, arguments); } + if (!checkArrayTypesClass(arguments, COSNumber.class)) + { + return; + } COSNumber miterLimit = (COSNumber)arguments.get( 0 ); getContext().getGraphicsState().setMiterLimit(miterLimit.floatValue()); } diff --git a/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/state/SetLineWidth.java b/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/state/SetLineWidth.java index 1ac6c4ca685..bd38fd69e4d 100644 --- a/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/state/SetLineWidth.java +++ b/pdfbox/src/main/java/org/apache/pdfbox/contentstream/operator/state/SetLineWidth.java @@ -47,6 +47,10 @@ public void process(Operator operator, List arguments) throws IOExcepti { throw new MissingOperandException(operator, arguments); } + if (!checkArrayTypesClass(arguments, COSNumber.class)) + { + return; + } COSNumber width = (COSNumber) arguments.get(0); getContext().getGraphicsState().setLineWidth(width.floatValue()); }