diff --git a/cpp/src/arrow/flight/serialization_internal.cc b/cpp/src/arrow/flight/serialization_internal.cc index fb890d926d2..cf5f4140c37 100644 --- a/cpp/src/arrow/flight/serialization_internal.cc +++ b/cpp/src/arrow/flight/serialization_internal.cc @@ -374,7 +374,13 @@ grpc::Status FlightDataDeserialize(ByteBuffer* buffer, FlightData* out) { buffer->Clear(); // TODO(wesm): Where and when should we verify that the FlightData is not - // malformed or missing components? + // malformed? + + // Set the default value for an unspecified FlightData body. The other + // fields can be null if they're unspecified. + if (out->body == nullptr) { + out->body = std::make_shared(nullptr, 0); + } return grpc::Status::OK; }