MCPcopy Create free account
hub / github.com/apache/arrow / FuzzIpcStream

Function FuzzIpcStream

cpp/src/arrow/ipc/reader.cc:2826–2845  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2824} // namespace
2825
2826Status FuzzIpcStream(const uint8_t* data, int64_t size) {
2827 auto buffer = std::make_shared<Buffer>(data, size);
2828 io::BufferReader buffer_reader(buffer);
2829
2830 std::shared_ptr<RecordBatchReader> batch_reader;
2831 ARROW_ASSIGN_OR_RAISE(batch_reader,
2832 RecordBatchStreamReader::Open(&buffer_reader, FuzzingOptions()));
2833 Status st;
2834
2835 while (true) {
2836 ARROW_ASSIGN_OR_RAISE(auto batch, batch_reader->ReadNext());
2837 if (!batch.batch && !batch.custom_metadata) {
2838 // EOS
2839 break;
2840 }
2841 st &= ValidateFuzzBatch(batch);
2842 }
2843
2844 return st;
2845}
2846
2847Status FuzzIpcFile(const uint8_t* data, int64_t size) {
2848 auto buffer = std::make_shared<Buffer>(data, size);

Callers 1

LLVMFuzzerTestOneInputFunction · 0.85

Calls 3

FuzzingOptionsFunction · 0.85
ValidateFuzzBatchFunction · 0.85
ARROW_ASSIGN_OR_RAISEFunction · 0.70

Tested by

no test coverage detected