Joris Van den Bossche created ARROW-6618:

             Summary: [Python] Reading a zero-size buffer can segfault
                 Key: ARROW-6618
             Project: Apache Arrow
          Issue Type: Bug
          Components: Python
            Reporter: Joris Van den Bossche

Simplest reproducible code is:


which gives a segfault. 

You can easily run into this interactively when eg by accident passing a 
already-read buffer to it, like:

serialized = pa.schema([('a', pa.int64())]).serialize().to_pybytes()
buffer = pa.BufferReader(serialized)

And for example, if you compare to {{read_schema}}, this gives an error on the 
second time / empty buffer:

>>> pa.read_schema(buffer)
>>> pa.read_schema(buffer)
ArrowInvalid: Tried reading schema message, was null or length 0

I know this is not proper usage of Buffer(Reader), but since it is easy to 
accidentally do this, we should try to protect users from this I think.

This message was sent by Atlassian Jira

Reply via email to