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/30 10:06:05 UTC

svn commit: r1878312 - /pdfbox/branches/issue45/fontbox/src/main/java/org/apache/fontbox/ttf/PostScriptTable.java

Author: tilman
Date: Sat May 30 10:06:05 2020
New Revision: 1878312

URL: http://svn.apache.org/viewvc?rev=1878312&view=rev
Log:
PDFBOX-4851: swallow exception when reading PostScript table and set default values

Modified:
    pdfbox/branches/issue45/fontbox/src/main/java/org/apache/fontbox/ttf/PostScriptTable.java

Modified: pdfbox/branches/issue45/fontbox/src/main/java/org/apache/fontbox/ttf/PostScriptTable.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/issue45/fontbox/src/main/java/org/apache/fontbox/ttf/PostScriptTable.java?rev=1878312&r1=1878311&r2=1878312&view=diff
==============================================================================
--- pdfbox/branches/issue45/fontbox/src/main/java/org/apache/fontbox/ttf/PostScriptTable.java (original)
+++ pdfbox/branches/issue45/fontbox/src/main/java/org/apache/fontbox/ttf/PostScriptTable.java Sat May 30 10:06:05 2020
@@ -101,7 +101,21 @@ public class PostScriptTable extends TTF
                 for (int i = 0; i < maxIndex - WGL4Names.NUMBER_OF_MAC_GLYPHS + 1; i++)
                 {
                     int numberOfChars = data.readUnsignedByte();
-                    nameArray[i] = data.readString(numberOfChars);
+                    try
+                    {
+                        nameArray[i] = data.readString(numberOfChars);
+                    }
+                    catch (IOException ex)
+                    {
+                        // PDFBOX-4851: EOF
+                        LOG.warn("Error reading names in PostScript table at entry " + i + " of " + 
+                                 nameArray.length + ", setting remaining entries to .notdef", ex);
+                        for (int j = i; j < nameArray.length; ++j)
+                        {
+                            nameArray[j] = ".notdef";
+                        }
+                        break;
+                    }
                 }
             }
             for (int i = 0; i < numGlyphs; i++)