Skip to content

Panic assertion failed: self.bits_left >= n in crates/zune-jpeg/src/bitstream.rs #300

@qarmin

Description

@qarmin

Code:

fn check_file(path: &str) {
    let Ok(file_content) = fs::read(path) else {
        return;
    };

    for options in [DecoderOptions::new_fast(), DecoderOptions::new_cmd(), DecoderOptions::new_safe()] {
        let img = Image::read(ZCursor::new(&file_content), options);
        match img {
            Ok(_) => {
                println!("Successfully checked file: {path}");}
            Err(_) => {            }
        }
    }

}

Backtrace

thread 'main' (1522132) panicked at /home/runner/.cargo/git/checkouts/zune-image-827035e253f15ba0/a655c04/crates/zune-jpeg/src/bitstream.rs:404:9:
assertion failed: self.bits_left >= n
stack backtrace:
   0: __rustc::rust_begin_unwind
             at /rustc/278a90913daf7707791020a592d722dd7971f196/library/std/src/panicking.rs:698:5
   1: core::panicking::panic_fmt
             at /rustc/278a90913daf7707791020a592d722dd7971f196/library/core/src/panicking.rs:80:14
   2: core::panicking::panic
             at /rustc/278a90913daf7707791020a592d722dd7971f196/library/core/src/panicking.rs:150:5
   3: zune_jpeg::bitstream::BitStream::drop_bits
             at /home/runner/.cargo/git/checkouts/zune-image-827035e253f15ba0/a655c04/crates/zune-jpeg/src/bitstream.rs:404:9
   4: zune_jpeg::bitstream::BitStream::decode_mcu_ac_first
   5: zune_jpeg::mcu_prog::<impl zune_jpeg::decoder::JpegDecoder<T>>::parse_entropy_coded_data
             at /home/runner/.cargo/git/checkouts/zune-image-827035e253f15ba0/a655c04/crates/zune-jpeg/src/mcu_prog.rs:330:40
   6: zune_jpeg::mcu_prog::<impl zune_jpeg::decoder::JpegDecoder<T>>::decode_mcu_ycbcr_progressive
             at /home/runner/.cargo/git/checkouts/zune-image-827035e253f15ba0/a655c04/crates/zune-jpeg/src/mcu_prog.rs:111:27
   7: zune_jpeg::decoder::JpegDecoder<T>::decode_into
             at /home/runner/.cargo/git/checkouts/zune-image-827035e253f15ba0/a655c04/crates/zune-jpeg/src/decoder.rs:785:18
   8: zune_jpeg::decoder::JpegDecoder<T>::decode
             at /home/runner/.cargo/git/checkouts/zune-image-827035e253f15ba0/a655c04/crates/zune-jpeg/src/decoder.rs:212:14
   9: zune_image::codecs::jpeg::<impl zune_image::traits::DecoderTrait for zune_jpeg::decoder::JpegDecoder<T>>::decode
             at /home/runner/.cargo/git/checkouts/zune-image-827035e253f15ba0/a655c04/crates/zune-image/src/codecs/jpeg.rs:48:14
  10: zune_image::codecs::<impl zune_image::image::Image>::read
             at /home/runner/.cargo/git/checkouts/zune-image-827035e253f15ba0/a655c04/crates/zune-image/src/codecs.rs:642:43
  11: zune::check_file
             at ./src/crates/zune/src/main.rs:34:19
  12: zune::main
             at ./src/crates/zune/src/main.rs:24:9
  13: core::ops::function::FnOnce::call_once
             at /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

##### Automatic Fuzzer note, output status "None", output signal "Some(6)"

File:

compressed.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions