[ 
https://issues.apache.org/jira/browse/ARROW-4150?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16733368#comment-16733368
 ] 

Antoine Pitrou commented on ARROW-4150:
---------------------------------------

We have two possible solutions actually:
- follow standard malloc() conventions and return a different pointer 
everytime, even for 0-size allocations; this means allocating actual memory 
(probably in 64-byte increments if we want the right alignment)
- return the same pointer for all 0-size allocations, in which case we can 
simply return a statically-allocated piece of memory; this makes us 
non-malloc() compliant, but we don't pretend we are


> [C++] Buffer data should never be null
> --------------------------------------
>
>                 Key: ARROW-4150
>                 URL: https://issues.apache.org/jira/browse/ARROW-4150
>             Project: Apache Arrow
>          Issue Type: Wish
>          Components: C++
>    Affects Versions: 0.11.1
>            Reporter: Antoine Pitrou
>            Priority: Major
>
> When a 0-byte buffer is allocated, or at the start of a BufferBuilder, the 
> buffer's data pointer can be null. This leads to passing null arguments (with 
> zero sizes) to standard functions such as memset() and memcpy() in many 
> places. UBSAN doesn't like it.
> Since a null pointer often means "failed allocating" or "programmer error", 
> we might want to use a non-null pointer to a static empty piece of data 
> instead.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to