You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ms...@apache.org on 2018/02/22 17:34:45 UTC

svn commit: r1825083 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java

Author: msahyoun
Date: Thu Feb 22 17:34:45 2018
New Revision: 1825083

URL: http://svn.apache.org/viewvc?rev=1825083&view=rev
Log:
PDFBOX-4122: add test where index data could be null - malformed CFF only; throw IOException if Top DICT INDEX could not be read, return EmptyCharset if CharStrings index could not be read

Modified:
    pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java

Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java?rev=1825083&r1=1825082&r2=1825083&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java Thu Feb 22 17:34:45 2018
@@ -25,6 +25,11 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.lang.model.util.ElementScanner6;
+
 import org.apache.fontbox.util.Charsets;
 
 /**
@@ -33,6 +38,11 @@ import org.apache.fontbox.util.Charsets;
  */
 public class CFFParser
 {
+    /**
+     * Log instance.
+     */
+    private static final Log LOG = LogFactory.getLog(CFFParser.class);
+
     private static final String TAG_OTTO = "OTTO";
     private static final String TAG_TTCF = "ttcf";
     private static final String TAG_TTFONLY = "\u0000\u0001\u0000\u0000";
@@ -103,6 +113,11 @@ public class CFFParser
             throw new IOException("Name index missing in CFF font");
         }
         byte[][] topDictIndex = readIndexData(input);
+        if (topDictIndex == null)
+        {
+            throw new IOException("Top DICT INDEX missing in CFF font");
+        }
+        
         stringIndex = readStringIndexData(input);
         byte[][] globalSubrIndex = readIndexData(input);
 
@@ -471,18 +486,27 @@ public class CFFParser
             {
                 charset = CFFExpertSubsetCharset.getInstance();
             }
-            else
+            else if (charStringsIndex != null)
             {
                 input.setPosition(charsetId);
                 charset = readCharset(input, charStringsIndex.length, isCIDFont);
             }
+            // that should not happen
+            else
+            {
+                LOG.debug("Couldn't read CharStrings index - returning empty charset instead");
+                charset = new EmptyCharset(0);
+            }
+            
         }
         else
         {
             if (isCIDFont)
             {
+                // CharStrings index could be null if the index data couldnÄt be read
+                int numEntries = charStringsIndex == null ? 0 :  charStringsIndex.length;
                 // a CID font with no charset does not default to any predefined charset
-                charset = new EmptyCharset(charStringsIndex.length);
+                charset = new EmptyCharset(numEntries);
             }
             else
             {



Re: svn commit: r1825083 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java

Posted by Maruan Sahyoun <sa...@fileaffairs.de>.
> Am 22.02.2018 um 18:48 schrieb Tilman Hausherr <TH...@t-online.de>:
> 
> Am 22.02.2018 um 18:34 schrieb msahyoun@apache.org:
>> +import javax.lang.model.util.ElementScanner6;
> 
> 
> ???

thanks - resolved.

> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
> For additional commands, e-mail: dev-help@pdfbox.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org


Re: svn commit: r1825083 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java

Posted by Tilman Hausherr <TH...@t-online.de>.
Am 22.02.2018 um 18:34 schrieb msahyoun@apache.org:
> +import javax.lang.model.util.ElementScanner6;


???



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org