Skip to content

decode of malformed file yields array which panics in arrow when consumed #8823

Description

@lorenzhs

What happened?

decode of a malformed file yields a primitive array whose declared length exceeds its values buffer; consuming it panics in arrow (arrow-buffer/scalar.rs:91: offset overflow):

thread 'main' (617551) panicked at .../arrow-buffer-58.3.0/src/buffer/scalar.rs:91:52:
offset overflow
stack backtrace:
   0: __rustc::rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::option::expect_failed
   3: arrow_buffer::buffer::scalar::ScalarBuffer<T>::slice
   4: arrow_array::array::primitive_array::PrimitiveArray<T>::slice
   5: <arrow_array::array::primitive_array::PrimitiveArray<T> as arrow_array::array::Array>::slice
   6: vortex_tui::datafusion_helper::arrow_value_to_json
   7: vortex_tui::query::batch_to_json_rows
   8: vortex_tui::native_cli::launch_from::{{closure}}
   9: vx::main::{{closure}}
  10: vx::main

Steps to reproduce

https://4z2.de/fuzz5.vortex
sha256sum: edfe9494b9fbe4bf794aee8d6d573e4f5c2006d11107fe0c95474d4d00c7385f

Environment

develop as of 10b8173

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugA bug issue

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions