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 2020/12/26 15:20:20 UTC

svn commit: r1884820 - in /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter: CCITTFaxDecoderStream.java CCITTFaxFilter.java

Author: tilman
Date: Sat Dec 26 15:20:20 2020
New Revision: 1884820

URL: http://svn.apache.org/viewvc?rev=1884820&view=rev
Log:
PDFBOX-5057: Sonar fix

Modified:
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxDecoderStream.java
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxFilter.java

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxDecoderStream.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxDecoderStream.java?rev=1884820&r1=1884819&r2=1884820&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxDecoderStream.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxDecoderStream.java Sat Dec 26 15:20:20 2020
@@ -123,7 +123,7 @@ final class CCITTFaxDecoderStream extend
                 optionUncompressed = (options & TIFFExtension.GROUP4OPT_UNCOMPRESSED) != 0;
                 break;
             default:
-                throw new AssertionError();
+                throw new IllegalArgumentException("Illegal parameter: " + type);
         }
 
     }
@@ -332,6 +332,8 @@ final class CCITTFaxDecoderStream extend
             case TIFFExtension.COMPRESSION_CCITT_T6:
                 decodeRowType6();
                 break;
+            default:
+                throw new IllegalArgumentException("Illegal parameter: " + type);
         }
 
         int index = 0;

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxFilter.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxFilter.java?rev=1884820&r1=1884819&r2=1884820&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxFilter.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/CCITTFaxFilter.java Sat Dec 26 15:20:20 2020
@@ -16,6 +16,7 @@
  */
 package org.apache.pdfbox.filter;
 
+import java.io.EOFException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -70,7 +71,11 @@ final class CCITTFaxFilter extends Filte
         {
             type = TIFFExtension.COMPRESSION_CCITT_T4; // Group 3 1D
             byte[] streamData = new byte[20];
-            encoded.read(streamData);
+            int bytesRead = encoded.read(streamData);
+            if (bytesRead != streamData.length)
+            {
+                throw new EOFException("Can't read " + streamData.length + " bytes");
+            }
             encoded = new PushbackInputStream(encoded, streamData.length);
             ((PushbackInputStream) encoded).unread(streamData);
             if (streamData[0] != 0 || (streamData[1] >> 4 != 1 && streamData[1] != 1))
@@ -78,7 +83,7 @@ final class CCITTFaxFilter extends Filte
                 // leading EOL (0b000000000001) not found, search further and try RLE if not
                 // found
                 type = TIFFExtension.COMPRESSION_CCITT_MODIFIED_HUFFMAN_RLE;
-                short b = (short) (((streamData[0] << 8) + streamData[1]) >> 4);
+                short b = (short) (((streamData[0] << 8) + (streamData[1] & 0xff)) >> 4);
                 for (int i = 12; i < 160; i++)
                 {
                     b = (short) ((b << 1) + ((streamData[(i / 8)] >> (7 - (i % 8))) & 0x01));