Commit a1d801c3 authored by Frank Stein's avatar Frank Stein

2Gb buffer size checks fixed for Python Builder

parent 4798456d
......@@ -93,7 +93,7 @@ class Builder(object):
The internal buffer is grown as needed.
"""
if not (0 <= initialSize < (2**UOffsetTFlags.bytewidth - 1)):
if not (0 <= initialSize <= self.MaxBufferSize()):
msg = "flatbuffers: Cannot create Builder larger than 2 gigabytes."
raise BuilderSizeError(msg)
......@@ -104,6 +104,12 @@ class Builder(object):
self.objectEnd = None
self.vtables = []
def MaxBufferSize(self):
"""
Maximum buffer size is 2Gb.
"""
return 2**31
def Output(self):
"""
Output returns the portion of the buffer that has been used for
......@@ -238,7 +244,7 @@ class Builder(object):
def growByteBuffer(self):
"""Doubles the size of the byteslice, and copies the old data towards
the end of the new buffer (since we build the buffer backwards)."""
if not len(self.Bytes) <= 2**20:
if not len(self.Bytes) <= self.MaxBufferSize():
msg = "flatbuffers: cannot grow buffer beyond 2 gigabytes"
raise BuilderSizeError(msg)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment