You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by ss...@apache.org on 2020/01/14 12:21:22 UTC

svn commit: r1872774 - in /xmlgraphics/fop/trunk/fop-core/src: main/java/org/apache/fop/fonts/truetype/OpenFont.java test/java/org/apache/fop/fonts/truetype/TTFFileTestCase.java

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-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org