diff --git a/native/src/main/java/net/md_5/bungee/jni/zlib/JavaZlib.java b/native/src/main/java/net/md_5/bungee/jni/zlib/JavaZlib.java index 59810a5b..10da5d95 100644 --- a/native/src/main/java/net/md_5/bungee/jni/zlib/JavaZlib.java +++ b/native/src/main/java/net/md_5/bungee/jni/zlib/JavaZlib.java @@ -64,7 +64,7 @@ public class JavaZlib implements BungeeZlib { inflater.setInput( inData ); - while ( !inflater.finished() ) + while ( !inflater.finished() && inflater.getTotalIn() < inData.length ) { int count = inflater.inflate( buffer ); out.writeBytes( buffer, 0, count ); diff --git a/native/src/main/java/net/md_5/bungee/jni/zlib/NativeZlib.java b/native/src/main/java/net/md_5/bungee/jni/zlib/NativeZlib.java index 9b334b4f..f1f3b1e3 100644 --- a/native/src/main/java/net/md_5/bungee/jni/zlib/NativeZlib.java +++ b/native/src/main/java/net/md_5/bungee/jni/zlib/NativeZlib.java @@ -44,7 +44,7 @@ public class NativeZlib implements BungeeZlib out.memoryAddress(); Preconditions.checkState( ctx != 0, "Invalid pointer to compress!" ); - while ( !nativeCompress.finished ) + while ( !nativeCompress.finished && ( compress || in.isReadable() ) ) { out.ensureWritable( 8192 );