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 2020/05/11 06:30:02 UTC

svn commit: r1877564 - /pdfbox/branches/issue45/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java

Author: tilman
Date: Mon May 11 06:30:02 2020
New Revision: 1877564

URL: http://svn.apache.org/viewvc?rev=1877564&view=rev
Log:
PDFBOX-4828: avoid ArrayIndexOutOfBoundsException

Modified:
    pdfbox/branches/issue45/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java

Modified: pdfbox/branches/issue45/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/issue45/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java?rev=1877564&r1=1877563&r2=1877564&view=diff
==============================================================================
--- pdfbox/branches/issue45/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java (original)
+++ pdfbox/branches/issue45/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java Mon May 11 06:30:02 2020
@@ -409,14 +409,15 @@ public class GlyphSubstitutionTable exte
         for (LangSysTable langSysTable : langSysTables)
         {
             int required = langSysTable.requiredFeatureIndex;
-            if (required != 0xffff) // if no required features = 0xFFFF
+            if (required != 0xffff && required < featureList.length) // if no required features = 0xFFFF
             {
                 result.add(featureList[required]);
             }
             for (int featureIndex : langSysTable.featureIndices)
             {
-                if (enabledFeatures == null
-                        || enabledFeatures.contains(featureList[featureIndex].featureTag))
+                if (featureIndex < featureList.length &&
+                        (enabledFeatures == null ||
+                         enabledFeatures.contains(featureList[featureIndex].featureTag)))
                 {
                     result.add(featureList[featureIndex]);
                 }