From 0068b25132bec04dda44885b6226de673a6dc8d0 Mon Sep 17 00:00:00 2001 From: Mitchel Date: Fri, 2 Mar 2018 18:21:08 -0500 Subject: [PATCH] Fix for Java infinite loop encoding into 0-sized buffer (#4654) --- java/com/google/flatbuffers/FlatBufferBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com/google/flatbuffers/FlatBufferBuilder.java b/java/com/google/flatbuffers/FlatBufferBuilder.java index 0214fd265..f98fbedce 100644 --- a/java/com/google/flatbuffers/FlatBufferBuilder.java +++ b/java/com/google/flatbuffers/FlatBufferBuilder.java @@ -196,7 +196,7 @@ public class FlatBufferBuilder { int old_buf_size = bb.capacity(); if ((old_buf_size & 0xC0000000) != 0) // Ensure we don't grow beyond what fits in an int. throw new AssertionError("FlatBuffers: cannot grow buffer beyond 2 gigabytes."); - int new_buf_size = old_buf_size << 1; + int new_buf_size = old_buf_size == 0 ? 1 : old_buf_size << 1; bb.position(0); ByteBuffer nbb = bb_factory.newByteBuffer(new_buf_size); nbb.position(new_buf_size - old_buf_size);