You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2021/12/24 16:45:47 UTC
svn commit: r1896365 - /pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/type1/Type1Parser.java
Author: lehmi
Date: Fri Dec 24 16:45:47 2021
New Revision: 1896365
URL: http://svn.apache.org/viewvc?rev=1896365&view=rev
Log:
PDFBOX-5339: add null check, throw IOException instead
Modified:
pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/type1/Type1Parser.java
Modified: pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/type1/Type1Parser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/type1/Type1Parser.java?rev=1896365&r1=1896364&r2=1896365&view=diff
==============================================================================
--- pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/type1/Type1Parser.java (original)
+++ pdfbox/trunk/fontbox/src/main/java/org/apache/fontbox/type1/Type1Parser.java Fri Dec 24 16:45:47 2021
@@ -419,6 +419,10 @@ final class Type1Parser
private void readPostScriptWrapper(List<Token> value) throws IOException
{
+ if (lexer.peekToken() == null)
+ {
+ throw new IOException("Missing start token for the system dictionary");
+ }
// postscript wrapper (not in the Type 1 spec)
if (lexer.peekToken().getText().equals("systemdict"))
{
@@ -455,6 +459,11 @@ final class Type1Parser
int openProc = 1;
while (true)
{
+ if (lexer.peekToken() == null)
+ {
+ throw new IOException("Malformed procedure: missing token");
+ }
+
if (lexer.peekToken().getKind() == Token.START_PROC)
{
openProc++;
@@ -489,6 +498,10 @@ final class Type1Parser
int openProc = 1;
while (true)
{
+ if (lexer.peekToken() == null)
+ {
+ throw new IOException("Malformed procedure: missing token");
+ }
if (lexer.peekToken().getKind() == Token.START_PROC)
{
openProc++;
@@ -714,6 +727,10 @@ final class Type1Parser
// OtherSubrs are embedded PostScript procedures which we can safely ignore
private void readOtherSubrs() throws IOException
{
+ if (lexer.peekToken() == null)
+ {
+ throw new IOException("Missing start token of OtherSubrs procedure");
+ }
if (lexer.peekToken().getKind() == Token.START_ARRAY)
{
readValue();
@@ -852,7 +869,7 @@ final class Type1Parser
private void read(Token.Kind kind, String name) throws IOException
{
Token token = read(kind);
- if (!token.getText().equals(name))
+ if (token == null || token.getText() == null || !token.getText().equals(name))
{
throw new IOException("Found " + token + " but expected " + name);
}