Author: centic
Date: Sat Dec 30 11:11:36 2023
New Revision: 1914990

URL: http://svn.apache.org/viewvc?rev=1914990&view=rev
Log:
Bug 66425: Avoid exceptions found via poi-fuzz

Prevent ClassCastException

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=63375

Modified:
    poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/FractionFormat.java

Modified: 
poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/FractionFormat.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/FractionFormat.java?rev=1914990&r1=1914989&r2=1914990&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/FractionFormat.java 
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/FractionFormat.java 
Sat Dec 30 11:11:36 2023
@@ -44,7 +44,7 @@ import org.apache.poi.ss.formula.eval.No
 @SuppressWarnings("serial")
 public class FractionFormat extends Format {
     private static final Logger LOGGER = 
LogManager.getLogger(FractionFormat.class);
-    private static final Pattern DENOM_FORMAT_PATTERN = 
Pattern.compile("(?:(#+)|(\\d+))");
+    private static final Pattern DENOM_FORMAT_PATTERN = 
Pattern.compile("(#+)|(\\d+)");
 
     //this was chosen to match the earlier limitation of max denom power
     //it can be expanded to get closer to Excel's calculations
@@ -189,6 +189,10 @@ public class FractionFormat extends Form
 
     @Override
     public StringBuffer format(Object obj, StringBuffer toAppendTo, 
FieldPosition pos) {
+        if (!(obj instanceof Number)) {
+            throw new IllegalArgumentException("Cannot format object of " + 
obj.getClass() + " to number: " + obj);
+        }
+
         return toAppendTo.append(format((Number)obj));
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to