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 2017/10/28 10:44:54 UTC
svn commit: r1813604 -
/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
Author: tilman
Date: Sat Oct 28 10:44:54 2017
New Revision: 1813604
URL: http://svn.apache.org/viewvc?rev=1813604&view=rev
Log:
PDFBOX-3950: avoid NPE or CCE
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java?rev=1813604&r1=1813603&r2=1813604&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType0Font.java Sat Oct 28 10:44:54 2017
@@ -118,15 +118,22 @@ public class PDType0Font extends PDFont
public PDType0Font(COSDictionary fontDictionary) throws IOException
{
super(fontDictionary);
- COSArray descendantFonts = (COSArray)dict.getDictionaryObject(COSName.DESCENDANT_FONTS);
- COSDictionary descendantFontDictionary = (COSDictionary) descendantFonts.getObject(0);
-
- if (descendantFontDictionary == null)
+ COSBase base = dict.getDictionaryObject(COSName.DESCENDANT_FONTS);
+ if (!(base instanceof COSArray))
+ {
+ throw new IOException("Missing descendant font array");
+ }
+ COSArray descendantFonts = (COSArray) base;
+ if (descendantFonts.size() == 0)
+ {
+ throw new IOException("Descendant font array is empty");
+ }
+ COSBase descendantFontDictBase = descendantFonts.getObject(0);
+ if (!(descendantFontDictBase instanceof COSDictionary))
{
throw new IOException("Missing descendant font dictionary");
}
-
- descendantFont = PDFontFactory.createDescendantFont(descendantFontDictionary, this);
+ descendantFont = PDFontFactory.createDescendantFont((COSDictionary) descendantFontDictBase, this);
readEncoding();
fetchCMapUCS2();
}