[ https://issues.apache.org/jira/browse/ARROW-16238?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Krisztian Szucs resolved ARROW-16238. ------------------------------------- Resolution: Fixed Issue resolved by pull request 12937 [https://github.com/apache/arrow/pull/12937] > [C++] Fix nullptr deference in ipc/reader.cc > -------------------------------------------- > > Key: ARROW-16238 > URL: https://issues.apache.org/jira/browse/ARROW-16238 > Project: Apache Arrow > Issue Type: Bug > Components: C++ > Reporter: David Li > Assignee: David Li > Priority: Critical > Labels: pull-request-available > Fix For: 8.0.0 > > Time Spent: 40m > Remaining Estimate: 0h > > MinGW GCC catches this > {noformat} > [20/278] Building CXX object > src/arrow/CMakeFiles/arrow_shared.dir/Unity/unity_24_cxx.cxx.obj > In file included from > C:/msys64/home/User/arrow/build/cpp/src/arrow/CMakeFiles/arrow_shared.dir/Unity/unity_24_cxx.cxx:3: > C:/msys64/home/User/arrow/cpp/src/arrow/ipc/reader.cc: In member function > 'virtual > arrow::Result<std::function<arrow::Future<std::shared_ptr<arrow::RecordBatch> > >()> > arrow::ipc::RecordBatchFileReaderImpl::GetRecordBatchGenerator(bool, > const arrow::io::IOContext&, arrow::io::CacheOptions, > arrow::internal::Executor*)': > C:/msys64/home/User/arrow/cpp/src/arrow/ipc/reader.cc:1303:34: warning: > 'this' pointer is null [-Wnonnull] > 1303 | return cached_source->Cache({{0, footer_offset_}}); > | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ > In file included from C:/msys64/home/User/arrow/cpp/src/arrow/ipc/reader.h:28, > from > C:/msys64/home/User/arrow/cpp/src/arrow/ipc/reader.cc:18, > from > C:/msys64/home/User/arrow/build/cpp/src/arrow/CMakeFiles/arrow_shared.dir/Unity/unity_24_cxx.cxx:3: > C:/msys64/home/User/arrow/cpp/src/arrow/io/caching.h:124:10: note: in a call > to non-static member function 'arrow::Status > arrow::io::internal::ReadRangeCache::Cache(std::vector<arrow::io::ReadRange>)' > 124 | Status Cache(std::vector<ReadRange> ranges); > | ^~~~~ {noformat} > This is pretty clearly wrong: > {code:cpp} > std::shared_ptr<io::internal::ReadRangeCache> cached_source; > if (coalesce && file_->supports_zero_copy()) { > if (!owned_file_) return Status::Invalid("Cannot coalesce without an > owned file"); > // Since the user is asking for all fields then we can cache the entire > // file (up to the footer) > return cached_source->Cache({{0, footer_offset_}}); > } > return WholeIpcFileRecordBatchGenerator(std::move(state), > std::move(cached_source), > io_context, executor); > {code} > It seems ARROW-14577 removed one too many lines -- This message was sent by Atlassian Jira (v8.20.7#820007)