carrerasdarren-cell opened a new pull request, #51126: URL: https://github.com/apache/arrow/pull/51126
### Rationale for this change `BufferReader.readinto()` currently segfaults when passed a read-only destination such as `bytes` or a read-only `memoryview`. `py_buffer()` creates an immutable Arrow buffer, `mutable_data()` returns a null pointer, and the C++ read path attempts to copy into that pointer. A Python API misuse should raise a Python exception rather than terminate the interpreter. ### What changes are included in this PR? - Validate that a `NativeFile.readinto()` destination is mutable before obtaining its writable pointer. - Raise `TypeError` for immutable destinations. - Add regression coverage for `bytes` and read-only `memoryview` destinations. ### Are these changes tested? Yes. The focused `readinto` tests pass against a locally compiled patched `pyarrow.lib`. The stock 25.0.1 wheel exits with status 139 for the issue reproducer, while the patched build raises the expected `TypeError`; the writable `bytearray` control continues to read successfully. ### Are there any user-facing changes? Yes. Passing a read-only destination to `NativeFile.readinto()` now raises `TypeError` instead of terminating the interpreter. Writable-buffer behavior is unchanged. Fixes #51044. This contribution was developed with assistance from OpenAI Codex. I reviewed, tested, and take responsibility for the patch and this description. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
