Skip to content

panicked at 'attempt to subtract with overflow' #1509

@charlesxsh

Description

@charlesxsh

This happens in jpeg_decoder::decoder::refine_non_zeroes

Expected

return error properly

Actual behaviour

thread 'main' panicked at 'attempt to subtract with overflow', /home/xsh/.cargo/registry/src/github.com-1ecc6299db9ec823/jpeg-decoder-0.1.22/src/decoder.rs:908:17
stack backtrace:
   0: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
   1: core::fmt::write
   2: std::io::Write::write_fmt
   3: std::panicking::default_hook::{{closure}}
   4: std::panicking::default_hook
   5: std::panicking::rust_panic_with_hook
   6: rust_begin_unwind
   7: core::panicking::panic_fmt
   8: core::panicking::panic
   9: jpeg_decoder::decoder::refine_non_zeroes
             at /home/xsh/.cargo/registry/src/github.com-1ecc6299db9ec823/jpeg-decoder-0.1.22/src/decoder.rs:908
  10: jpeg_decoder::decoder::decode_block_successive_approximation
             at /home/xsh/.cargo/registry/src/github.com-1ecc6299db9ec823/jpeg-decoder-0.1.22/src/decoder.rs:869
  11: jpeg_decoder::decoder::Decoder<R>::decode_scan
             at /home/xsh/.cargo/registry/src/github.com-1ecc6299db9ec823/jpeg-decoder-0.1.22/src/decoder.rs:640
  12: jpeg_decoder::decoder::Decoder<R>::decode_internal
             at /home/xsh/.cargo/registry/src/github.com-1ecc6299db9ec823/jpeg-decoder-0.1.22/src/decoder.rs:300
  13: jpeg_decoder::decoder::Decoder<R>::decode
             at /home/xsh/.cargo/registry/src/github.com-1ecc6299db9ec823/jpeg-decoder-0.1.22/src/decoder.rs:186
  14: <image::codecs::jpeg::decoder::JpegDecoder<R> as image::image::ImageDecoder>::read_image
             at /home/xsh/.cargo/registry/src/github.com-1ecc6299db9ec823/image-0.23.14/./src/codecs/jpeg/decoder.rs:107
  15: image::image::decoder_to_vec
             at /home/xsh/.cargo/registry/src/github.com-1ecc6299db9ec823/image-0.23.14/./src/image.rs:492
  16: image::dynimage::decoder_to_image
             at /home/xsh/.cargo/registry/src/github.com-1ecc6299db9ec823/image-0.23.14/./src/dynimage.rs:1112
  17: image::dynimage::DynamicImage::from_decoder
             at /home/xsh/.cargo/registry/src/github.com-1ecc6299db9ec823/image-0.23.14/./src/dynimage.rs:194
  18: image::io::free_functions::load
             at /home/xsh/.cargo/registry/src/github.com-1ecc6299db9ec823/image-0.23.14/./src/io/free_functions.rs:69
  19: image::dynimage::load_from_memory_with_format
             at /home/xsh/.cargo/registry/src/github.com-1ecc6299db9ec823/image-0.23.14/./src/dynimage.rs:1320
  20: image::dynimage::load_from_memory
             at /home/xsh/.cargo/registry/src/github.com-1ecc6299db9ec823/image-0.23.14/./src/dynimage.rs:1305
  21: imagefuzzvrf::main
             at ./image-vrf.rs:8
  22: std::rt::lang_start::{{closure}}
             at /home/xsh/code/rust-compiler/src/libstd/rt.rs:67
  23: std::rt::lang_start_internal
  24: std::rt::lang_start
             at /home/xsh/code/rust-compiler/src/libstd/rt.rs:67
  25: main
  26: __libc_start_main
  27: _start

Reproduction steps

Input: in.txt

fn main() {
    let data = std::fs::read("in.txt").unwrap();
    let _ = image::load_from_memory(&data);
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    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