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]);
}