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