You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2015/01/19 22:16:49 UTC
svn commit: r1653125 - in
/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf: NameRecord.java
NamingTable.java
Author: jahewson
Date: Mon Jan 19 21:16:49 2015
New Revision: 1653125
URL: http://svn.apache.org/r1653125
Log:
PDFBOX-2608: Don't read invalid string offsets in TTF name table
Modified:
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NameRecord.java
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java
Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NameRecord.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NameRecord.java?rev=1653125&r1=1653124&r2=1653125&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NameRecord.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NameRecord.java Mon Jan 19 21:16:49 2015
@@ -186,7 +186,8 @@ public class NameRecord
"platform=" + platformId +
" pEncoding=" + platformEncodingId +
" language=" + languageId +
- " name=" + nameId;
+ " name=" + nameId +
+ " " + string;
}
/**
* @return Returns the string.
Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java?rev=1653125&r1=1653124&r2=1653125&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/ttf/NamingTable.java Mon Jan 19 21:16:49 2015
@@ -66,6 +66,14 @@ public class NamingTable extends TTFTabl
for (int i=0; i<numberOfNameRecords; i++)
{
NameRecord nr = nameRecords.get(i);
+
+ // don't try to read invalid offsets, see PDFBOX-2608
+ if (nr.getStringOffset() > getLength())
+ {
+ nr.setString(null);
+ continue;
+ }
+
data.seek(getOffset() + (2*3)+numberOfNameRecords*2*6+nr.getStringOffset());
int platform = nr.getPlatformId();
int encoding = nr.getPlatformEncodingId();
@@ -90,6 +98,7 @@ public class NamingTable extends TTFTabl
charset = "ISO-8859-1";
}
}
+
String string = data.readString(nr.getStringLength(), charset);
nr.setString(string);
}