Skip to content

Reader fails with out of bounds pointer error when reading from compressed stream #468

Open
@alex-maiorov

Description

@alex-maiorov

Hello,

I have been using this library for a project and ran into a potential issue, and I am unsure if this is a problem with the library or with my code. Originally, I had code along the lines of this:

let mut gzreader = flate2::read::GzDecoder::new(gz_file);
let message_reader = serialize::read_message(
        &mut BufReader::new(gzreader),
        capnp_reader_options,
).unwrap();
let root_message = message_reader.get_root::<my_schema_capnp::message_type::Reader>().unwrap();

And it would always fail with MessageContainsOutOfBoundsPointer. However, when I replaced &mut BufReader::new(gzreader) with &uncompressed_data[..], where uncompressed_data was simply the fully uncompresed data, it would work. This solution works but is not ideal considering that my uncompressed data can be gigabytes in size.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions