You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2022/02/13 11:15:37 UTC

svn commit: r1898032 - /pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java

Author: lehmi
Date: Sun Feb 13 11:15:37 2022
New Revision: 1898032

URL: http://svn.apache.org/viewvc?rev=1898032&view=rev
Log:
PDFBOX-5339: avoid AIOOBE and throw an IOException instead

Modified:
    pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java

Modified: pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java?rev=1898032&r1=1898031&r2=1898032&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java (original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java Sun Feb 13 11:15:37 2022
@@ -766,9 +766,13 @@ public class CFFParser
         }
     }
 
-    private String readString(int index)
+    private String readString(int index) throws IOException
     {
-        if (index >= 0 && index <= 390)
+        if (index < 0)
+        {
+            throw new IOException("Invalid negative index when reading a string");
+        }
+        if (index <= 390)
         {
             return CFFStandardString.getName(index);
         }
@@ -776,14 +780,11 @@ public class CFFParser
         {
             return stringIndex[index - 391];
         }
-        else
-        {
-            // technically this maps to .notdef, but we need a unique sid name
-            return "SID" + index;
-        }
+        // technically this maps to .notdef, but we need a unique sid name
+        return "SID" + index;
     }
 
-    private String getString(DictData dict, String name)
+    private String getString(DictData dict, String name) throws IOException
     {
         DictData.Entry entry = dict.getEntry(name);
         return entry != null && entry.hasOperands() ? readString(entry.getNumber(0).intValue()) : null;