From b5d715343a24be61be13a1546908ff9dbd3a743c Mon Sep 17 00:00:00 2001 From: Trustin Lee Date: Wed, 30 May 2012 15:51:24 -0700 Subject: [PATCH] Fail if DynamicChannelBuffer attempts to exceed the max capacity (#258) - Contributed by @normanmaurer --- .../main/java/io/netty/buffer/DynamicChannelBuffer.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/buffer/src/main/java/io/netty/buffer/DynamicChannelBuffer.java b/buffer/src/main/java/io/netty/buffer/DynamicChannelBuffer.java index 2ea089c46b..991c6d67c8 100644 --- a/buffer/src/main/java/io/netty/buffer/DynamicChannelBuffer.java +++ b/buffer/src/main/java/io/netty/buffer/DynamicChannelBuffer.java @@ -73,6 +73,13 @@ public class DynamicChannelBuffer extends AbstractChannelBuffer { int minNewCapacity = writerIndex() + minWritableBytes; while (newCapacity < minNewCapacity) { newCapacity <<= 1; + // Check if we exceeded the maximum size of 2gb if this is the case then + // newCapacity == 0 + // + // https://github.com/netty/netty/issues/258 + if (newCapacity == 0) { + throw new IllegalStateException("buffer capacity over 2GiB"); + } } ChannelBuffer newBuffer = factory().getBuffer(order(), newCapacity);