diff --git a/handler/src/main/java/io/netty/handler/ssl/OpenSslEngine.java b/handler/src/main/java/io/netty/handler/ssl/OpenSslEngine.java index 2f86b7ecc7..9355c14775 100644 --- a/handler/src/main/java/io/netty/handler/ssl/OpenSslEngine.java +++ b/handler/src/main/java/io/netty/handler/ssl/OpenSslEngine.java @@ -652,6 +652,12 @@ public final class OpenSslEngine extends SSLEngine { do { ByteBuffer src = srcs[srcsOffset]; int remaining = src.remaining(); + if (remaining == 0) { + // We must skip empty buffers as BIO_write will return 0 if asked to write something + // with length 0. + srcsOffset ++; + continue; + } int written = writeEncryptedData(src); if (written > 0) { bytesConsumed += written;