From ce27a1bf4f0fd7cc143b679b7e623947a4f48c18 Mon Sep 17 00:00:00 2001 From: REAndroid Date: Tue, 25 Apr 2023 19:30:00 +0200 Subject: [PATCH] fix: read within limit #32 --- .../com/reandroid/archive2/io/FileChannelInputStream.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/reandroid/archive2/io/FileChannelInputStream.java b/src/main/java/com/reandroid/archive2/io/FileChannelInputStream.java index 1ec3d98..2ba4330 100644 --- a/src/main/java/com/reandroid/archive2/io/FileChannelInputStream.java +++ b/src/main/java/com/reandroid/archive2/io/FileChannelInputStream.java @@ -91,7 +91,12 @@ public class FileChannelInputStream extends InputStream { if(this.bufferPosition < bufferLength){ return; } - ByteBuffer byteBuffer = ByteBuffer.wrap(buffer); + int length = buffer.length; + long available = totalLength - position; + if(length > available){ + length = (int) available; + } + ByteBuffer byteBuffer = ByteBuffer.wrap(buffer, 0, length); bufferLength = fileChannel.read(byteBuffer); bufferPosition = 0; }