Tobias Zagorni created ARROW-16013:
--------------------------------------

             Summary: [C++][Python] Wrong stride/address calculation when using 
negative stride in NumPyStridedConverter
                 Key: ARROW-16013
                 URL: https://issues.apache.org/jira/browse/ARROW-16013
             Project: Apache Arrow
          Issue Type: Bug
          Components: C++, Python
            Reporter: Tobias Zagorni
            Assignee: Tobias Zagorni


The calculation of the stride value passed to `CopyStridedNatural` by 
`NumPyStridedConverter::Visit` divides the stride value by sizeof(T), which is 
unsigned, without an appropriate type case. This causes CopyStridedNatural to 
access bogus indices.

This is triggered by the existing test method `test_numpy_to_pyarrow` in 
`test_array.py`. For some reason this neither causes a direct crash, nor is the 
output to python affected. Only ubsan catches an integer overflow



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to