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");
+        }
     }
 }