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 2016/08/03 18:38:28 UTC
svn commit: r1755104 -
/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/cff/CFFParser.java
Author: tilman
Date: Wed Aug 3 18:38:27 2016
New Revision: 1755104
URL: http://svn.apache.org/viewvc?rev=1755104&view=rev
Log:
PDFBOX-2852: avoid unchecked exceptions
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=1755104&r1=1755103&r2=1755104&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 Wed Aug 3 18:38:27 2016
@@ -217,6 +217,12 @@ public class CFFParser
for (int i = 0; i < count; i++)
{
int length = offsets[i + 1] - offsets[i];
+ if (length < 0)
+ {
+ throw new IOException("Negative index data length + " + length + " at " +
+ i + ": offsets[" + (i + 1) + "]=" + offsets[i + 1] +
+ ", offsets[" + i + "]=" + offsets[i]);
+ }
indexDataValues[i] = new String(input.readBytes(length), Charsets.ISO_8859_1);
}
return indexDataValues;
@@ -1113,19 +1119,19 @@ public class CFFParser
public Boolean getBoolean(String name, boolean defaultValue)
{
Entry entry = getEntry(name);
- return entry != null ? entry.getBoolean(0) : defaultValue;
+ return entry != null && entry.getArray().size() > 0 ? entry.getBoolean(0) : defaultValue;
}
public List<Number> getArray(String name, List<Number> defaultValue)
{
Entry entry = getEntry(name);
- return entry != null ? entry.getArray() : defaultValue;
+ return entry != null && entry.getArray().size() > 0 ? entry.getArray() : defaultValue;
}
public Number getNumber(String name, Number defaultValue)
{
Entry entry = getEntry(name);
- return entry != null ? entry.getNumber(0) : defaultValue;
+ return entry != null && entry.getArray().size() > 0 ? entry.getNumber(0) : defaultValue;
}
/**