Forráskód Böngészése

HADOOP-19339. OutofBounds Exception due to assumption about buffer size in BlockCompressorStream. Contributed by ConfX.

Co-authored-by: saadsheralam <saadsheralamfkah@gmail.com>
Signed-off-by: He Xiaoqiao <hexiaoqiao@apache.org>
ConfX 7 hónapja
szülő
commit
58896f0e13

+ 5 - 1
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/BlockCompressorStream.java

@@ -54,7 +54,11 @@ public class BlockCompressorStream extends CompressorStream {
   public BlockCompressorStream(OutputStream out, Compressor compressor, 
                                int bufferSize, int compressionOverhead) {
     super(out, compressor, bufferSize);
-    MAX_INPUT_SIZE = bufferSize - compressionOverhead;
+    if (bufferSize - compressionOverhead >= 0) {
+      MAX_INPUT_SIZE = bufferSize - compressionOverhead;
+    } else {
+      throw new IllegalArgumentException("buffer size is less than compression overhead");
+    }
   }
 
   /**