Author: ssteiner Date: Tue Jan 14 12:21:21 2020 New Revision: 1872774 URL: http://svn.apache.org/viewvc?rev=1872774&view=rev Log: FOP-2902: Ignore TTF reserved index range
Modified: xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/fonts/truetype/OpenFont.java xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/fonts/truetype/TTFFileTestCase.java Modified: xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/fonts/truetype/OpenFont.java URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/fonts/truetype/OpenFont.java?rev=1872774&r1=1872773&r2=1872774&view=diff ============================================================================== --- xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/fonts/truetype/OpenFont.java (original) +++ xmlgraphics/fop/trunk/fop-core/src/main/java/org/apache/fop/fonts/truetype/OpenFont.java Tue Jan 14 12:21:21 2020 @@ -1406,7 +1406,7 @@ public abstract class OpenFont { for (int i = 0; i < l; i++) { mtxTab[i].setIndex(fontFile.readTTFUShort()); - if (mtxTab[i].getIndex() > numGlyphStrings) { + if (mtxTab[i].getIndex() > numGlyphStrings && mtxTab[i].getIndex() <= 32767) { numGlyphStrings = mtxTab[i].getIndex(); } Modified: xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/fonts/truetype/TTFFileTestCase.java URL: http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/fonts/truetype/TTFFileTestCase.java?rev=1872774&r1=1872773&r2=1872774&view=diff ============================================================================== --- xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/fonts/truetype/TTFFileTestCase.java (original) +++ xmlgraphics/fop/trunk/fop-core/src/test/java/org/apache/fop/fonts/truetype/TTFFileTestCase.java Tue Jan 14 12:21:21 2020 @@ -19,9 +19,13 @@ package org.apache.fop.fonts.truetype; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -572,4 +576,23 @@ public class TTFFileTestCase { assertEquals(dejavuTTFFile.getBBox(1)[0], 49); assertEquals(dejavuTTFFile.getBBox(2330).length, 4); } + + @Test + public void testReservedIndex() throws IOException { + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + DataOutputStream dos = new DataOutputStream(bos); + dos.write(0); + dos.write(2); + for (int i = 0; i < 31; i++) { + dos.write(0); + } + dos.write(1); //number of glyphs + dos.writeShort(32768); //index value + TTFFile ttfFile = new TTFFile(); + ttfFile.dirTabs = new HashMap<OFTableName, OFDirTabEntry>(); + ttfFile.fontFile = new FontFileReader(new ByteArrayInputStream(bos.toByteArray())); + ttfFile.mtxTab = new OFMtxEntry[1]; + ttfFile.mtxTab[0] = new OFMtxEntry(); + ttfFile.readPostScript(); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: fop-commits-unsubscr...@xmlgraphics.apache.org For additional commands, e-mail: fop-commits-h...@xmlgraphics.apache.org