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:28:18 UTC
svn commit: r1877563 -
/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java
Author: tilman
Date: Mon May 11 06:28:18 2020
New Revision: 1877563
URL: http://svn.apache.org/viewvc?rev=1877563&view=rev
Log:
PDFBOX-4828: avoid ArrayIndexOutOfBoundsException
Modified:
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java
Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java?rev=1877563&r1=1877562&r2=1877563&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java Mon May 11 06:28:18 2020
@@ -543,17 +543,18 @@ public class GlyphSubstitutionTable exte
langSysTables.forEach(langSysTable ->
{
int required = langSysTable.getRequiredFeatureIndex();
- if (required != 0xffff) // if no required features = 0xFFFF
+ FeatureRecord[] featureRecords = featureListTable.getFeatureRecords();
+ if (required != 0xffff && required < featureRecords.length) // if no required features = 0xFFFF
{
- result.add(featureListTable.getFeatureRecords()[required]);
+ result.add(featureRecords[required]);
}
for (int featureIndex : langSysTable.getFeatureIndices())
{
- if (enabledFeatures == null
- || enabledFeatures.contains(
- featureListTable.getFeatureRecords()[featureIndex].getFeatureTag()))
+ if (featureIndex < featureRecords.length &&
+ (enabledFeatures == null ||
+ enabledFeatures.contains(featureRecords[featureIndex].getFeatureTag())))
{
- result.add(featureListTable.getFeatureRecords()[featureIndex]);
+ result.add(featureRecords[featureIndex]);
}
}
});