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 2023/12/11 12:54:13 UTC
svn commit: r1914536 - /pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java
Author: tilman
Date: Mon Dec 11 12:54:13 2023
New Revision: 1914536
URL: http://svn.apache.org/viewvc?rev=1914536&view=rev
Log:
PDFBOX-5733: assign extensionLookupType to lookupType and check that they remain the same
Modified:
pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java
Modified: pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java?rev=1914536&r1=1914535&r2=1914536&view=diff
==============================================================================
--- pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java (original)
+++ pdfbox/branches/3.0/fontbox/src/main/java/org/apache/fontbox/ttf/GlyphSubstitutionTable.java Mon Dec 11 12:54:13 2023
@@ -323,6 +323,16 @@ public class GlyphSubstitutionTable exte
long baseOffset = data.getCurrentPosition();
int substFormat = data.readUnsignedShort(); // always 1
int extensionLookupType = data.readUnsignedShort();
+ if (lookupType != 7 && lookupType != extensionLookupType)
+ {
+ // "If a lookup table uses extension subtables, then all of the extension
+ // subtables must have the same extensionLookupType"
+ LOG.error("extensionLookupType changed from " +
+ lookupType + " to " + extensionLookupType);
+ data.seek(baseOffset + 8);
+ continue;
+ }
+ lookupType = extensionLookupType;
long extensionOffset = data.readUnsignedInt();
if (substFormat != 1)
{