Joris Van den Bossche created ARROW-6618: --------------------------------------------
Summary: [Python] Reading a zero-size buffer can segfault Key: ARROW-6618 URL: https://issues.apache.org/jira/browse/ARROW-6618 Project: Apache Arrow Issue Type: Bug Components: Python Reporter: Joris Van den Bossche Simplest reproducible code is: {code} pa.read_message(b'') {code} which gives a segfault. You can easily run into this interactively when eg by accident passing a already-read buffer to it, like: {code} serialized = pa.schema([('a', pa.int64())]).serialize().to_pybytes() buffer = pa.BufferReader(serialized) pa.read_message(buffer) pa.read_message(buffer) {code} And for example, if you compare to {{read_schema}}, this gives an error on the second time / empty buffer: {code} >>> pa.read_schema(buffer) >>> pa.read_schema(buffer) ... ArrowInvalid: Tried reading schema message, was null or length 0 {code} 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 (v8.3.4#803005)