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 2022/01/25 07:13:58 UTC
svn commit: r1897437 - /pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/type1/Type1Lexer.java
Author: lehmi
Date: Tue Jan 25 07:13:57 2022
New Revision: 1897437
URL: http://svn.apache.org/viewvc?rev=1897437&view=rev
Log:
PDFBOX-5339: wrap BufferUnderflowException into IOException
Modified:
pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/type1/Type1Lexer.java
Modified: pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/type1/Type1Lexer.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/type1/Type1Lexer.java?rev=1897437&r1=1897436&r2=1897437&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/type1/Type1Lexer.java (original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/type1/Type1Lexer.java Tue Jan 25 07:13:57 2022
@@ -20,6 +20,7 @@
package org.apache.fontbox.type1;
import java.io.IOException;
+import java.nio.BufferUnderflowException;
import java.nio.ByteBuffer;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -88,9 +89,16 @@ class Type1Lexer
/**
* Reads an ASCII char from the buffer.
*/
- private char getChar()
+ private char getChar() throws IOException
{
- return (char) buffer.get();
+ try
+ {
+ return (char) buffer.get();
+ }
+ catch (BufferUnderflowException exception)
+ {
+ throw new IOException("Premature end of buffer reached");
+ }
}
/**
@@ -359,7 +367,7 @@ class Type1Lexer
* Reads a sequence of regular characters, i.e. not delimiters
* or whitespace
*/
- private String readRegular()
+ private String readRegular() throws IOException
{
StringBuilder sb = new StringBuilder();
while (buffer.hasRemaining())
@@ -391,7 +399,7 @@ class Type1Lexer
/**
* Reads a line comment.
*/
- private String readComment()
+ private String readComment() throws IOException
{
StringBuilder sb = new StringBuilder();
while (buffer.hasRemaining())
@@ -482,11 +490,18 @@ class Type1Lexer
/**
* Reads a binary CharString.
*/
- private Token readCharString(int length)
+ private Token readCharString(int length) throws IOException
{
- buffer.get(); // space
- byte[] data = new byte[length];
- buffer.get(data);
- return new Token(data, Token.CHARSTRING);
+ try
+ {
+ buffer.get(); // space
+ byte[] data = new byte[length];
+ buffer.get(data);
+ return new Token(data, Token.CHARSTRING);
+ }
+ catch (BufferUnderflowException exception)
+ {
+ throw new IOException("Premature end of buffer reached");
+ }
}
}