You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2014/09/15 22:34:54 UTC

svn commit: r1625160 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/HorizontalMetricsTable.java

Author: jahewson
Date: Mon Sep 15 20:34:54 2014
New Revision: 1625160

URL: http://svn.apache.org/r1625160
Log:
PDFBOX-2352: Handle TTFs with too many horizontal metrics

Modified:
    pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/HorizontalMetricsTable.java

Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/HorizontalMetricsTable.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/HorizontalMetricsTable.java?rev=1625160&r1=1625159&r2=1625160&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/HorizontalMetricsTable.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/HorizontalMetricsTable.java Mon Sep 15 20:34:54 2014
@@ -60,6 +60,13 @@ public class HorizontalMetricsTable exte
         if (bytesRead < getLength())
         {
             int numberNonHorizontal = numGlyphs - numHMetrics;
+
+            // handle bad fonts with too many hmetrics
+            if (numberNonHorizontal < 0)
+            {
+                numberNonHorizontal = numGlyphs;
+            }
+
             nonHorizontalLeftSideBearing = new short[ numberNonHorizontal ];
             for( int i=0; i<numberNonHorizontal; i++ )
             {