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/01/23 14:11:14 UTC

svn commit: r1897371 - /pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/type1/Type1Lexer.java

Author: tilman
Date: Sun Jan 23 14:11:14 2022
New Revision: 1897371

URL: http://svn.apache.org/viewvc?rev=1897371&view=rev
Log:
PDFBOX-5339: avoid NumberFormatException

Modified:
    pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/type1/Type1Lexer.java

Modified: pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/type1/Type1Lexer.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/type1/Type1Lexer.java?rev=1897371&r1=1897370&r2=1897371&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/type1/Type1Lexer.java (original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/type1/Type1Lexer.java Sun Jan 23 14:11:14 2022
@@ -234,7 +234,7 @@ class Type1Lexer
     /**
      * Reads a number or returns null.
      */
-    private Token tryReadNumber()
+    private Token tryReadNumber() throws IOException
     {
         buffer.mark();
 
@@ -341,8 +341,16 @@ class Type1Lexer
         buffer.position(buffer.position() - 1);
         if (radix != null)
         {
-            Integer val = Integer.parseInt(sb.toString(), Integer.parseInt(radix.toString()));
-            return new Token(val.toString(), Token.INTEGER);
+            int val;
+            try
+            {
+                val = Integer.parseInt(sb.toString(), Integer.parseInt(radix.toString()));
+            }
+            catch (NumberFormatException ex)
+            {
+                throw new IOException("Invalid number '" + sb.toString() + "'", ex);
+            }
+            return new Token(Integer.toString(val), Token.INTEGER);
         }
         return new Token(sb.toString(), Token.REAL);
     }