From 5fa5fcc9d9401f8ec2231dc1840065c788db59e7 Mon Sep 17 00:00:00 2001 From: Roger Kapsi Date: Mon, 13 Jun 2016 12:56:32 -0400 Subject: [PATCH] Fix for a newly intrduced bug in #5377 Motivation This bug was introduced with #5377 and affects only users who'd like to share/cache/re-use `PemPrivateKey` and `PemX509Certificate` instances. Modifications Use `ByteBuf#writeBytes(src, readerIndex, length)` so that the src's readerIndex doesn't change and can consequently be used more than once. Result It's possible to share/cache/re-use `PemPrivateKey` and `PemX509Certificate` instances as long as their refCnt remains >= 1. --- handler/src/main/java/io/netty/handler/ssl/OpenSslContext.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handler/src/main/java/io/netty/handler/ssl/OpenSslContext.java b/handler/src/main/java/io/netty/handler/ssl/OpenSslContext.java index 8e39e01237..985337d728 100644 --- a/handler/src/main/java/io/netty/handler/ssl/OpenSslContext.java +++ b/handler/src/main/java/io/netty/handler/ssl/OpenSslContext.java @@ -548,7 +548,7 @@ public abstract class OpenSslContext extends SslContext { ByteBuf buffer = allocator.directBuffer(content.readableBytes()); try { - buffer.writeBytes(content); + buffer.writeBytes(content, content.readerIndex(), content.readableBytes()); return newBIO(buffer.slice().retain()); } finally { try {