Skip to content

[C++] ByteStreamSplit implementation uses invalid pointer cast #28808

@asfimport

Description

@asfimport

This code in src/parquet/encoding.cc:

template <>
void ByteStreamSplitEncoder<FloatType>::PutArrowArray(const ::arrow::Array& values) {
  DirectPutImpl<::arrow::FloatArray>(values,
                                     reinterpret_cast<::arrow::BufferBuilder*>(&values_));
}

template <>
void ByteStreamSplitEncoder<DoubleType>::PutArrowArray(const ::arrow::Array& values) {
  DirectPutImpl<::arrow::DoubleArray>(
      values, reinterpret_cast<::arrow::BufferBuilder*>(&values_));
}

Casts a TypedBufferBuilder<T>\* to a BufferBuilder<T>\*. Apparently it works by chance...

Reporter: Antoine Pitrou / @pitrou
Assignee: Antoine Pitrou / @pitrou

PRs and other links:

Note: This issue was originally created as ARROW-13104. Please see the migration documentation for further details.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions