Ziru Niu created ARROW-10691: -------------------------------- Summary: Segfault in Key: ARROW-10691 URL: https://issues.apache.org/jira/browse/ARROW-10691 Project: Apache Arrow Issue Type: Bug Components: Rust Affects Versions: 2.0.0 Environment: Ubuntu 20.04. rustc-nightly, Reporter: Ziru Niu
{quote}// src/buffer.rs:657 /// Ensures that this buffer has at least `capacity` slots in this buffer. This will /// also ensure the new capacity will be a multiple of 64 bytes. /// /// Returns the new capacity for this buffer. pub fn reserve(&mut self, capacity: usize) -> Result<usize> { if capacity > self.capacity { let new_capacity = bit_util::round_upto_multiple_of_64(capacity); let new_capacity = cmp::max(new_capacity, self.capacity * 2); let new_data = unsafe \{ memory::reallocate(self.data, self.capacity, new_capacity) }; self.data = new_data as *mut u8; self.capacity = new_capacity; } Ok(self.capacity) }{quote} Above code is not checking if new_data is null, which is causing segfault on following memcpy when reallocate failed. -- This message was sent by Atlassian Jira (v8.3.4#803005)