Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

crash: index 54 out of range for slice of length 48 #83

Closed
matthiaskrgr opened this issue Sep 11, 2017 · 2 comments
Closed

crash: index 54 out of range for slice of length 48 #83

matthiaskrgr opened this issue Sep 11, 2017 · 2 comments
Labels
I-High Issues that are breaking core functionality for a small number of users T-Bug Some piece of the software is not working as intended

Comments

@matthiaskrgr
Copy link
Contributor

file: https://github.com/FLIF-hub/benchmarks/blob/master/test_animations/random-gifs/SteamEngine.png

Processing: ./test_animations/random-gifs/SteamEngine.png
    320x240 pixels, PNG format
    8 bits/pixel, 16 colors in palette
    IDAT size = 2761 bytes
    File size = 38713 bytes
Reducing image to 4 bits/pixel, 15 colors in palette
Trying: 8 combinations
Found better combination:
    zc = 9  zm = 9  zs = 0  f = 0        2457 bytes
    IDAT size = 2457 bytes (304 bytes decrease)
    file size = 3868 bytes (34845 bytes = 90.01% decrease)
thread 'main' panicked at 'index 54 out of range for slice of length 48', /checkout/src/libcore/slice/mod.rs:748:4
stack backtrace:
   0: std::sys::imp::backtrace::tracing::imp::unwind_backtrace
             at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::_print
             at /checkout/src/libstd/sys_common/backtrace.rs:71
   2: std::panicking::default_hook::{{closure}}
             at /checkout/src/libstd/sys_common/backtrace.rs:60
             at /checkout/src/libstd/panicking.rs:381
   3: std::panicking::default_hook
             at /checkout/src/libstd/panicking.rs:397
   4: std::panicking::rust_panic_with_hook
             at /checkout/src/libstd/panicking.rs:577
   5: std::panicking::begin_panic
             at /checkout/src/libstd/panicking.rs:538
   6: std::panicking::begin_panic_fmt
             at /checkout/src/libstd/panicking.rs:522
   7: rust_begin_unwind
             at /checkout/src/libstd/panicking.rs:498
   8: core::panicking::panic_fmt
             at /checkout/src/libcore/panicking.rs:71
   9: core::slice::slice_index_len_fail
             at /checkout/src/libcore/slice/mod.rs:748
  10: png::decoder::expand_paletted
             at /checkout/src/libcore/slice/mod.rs:879
             at /checkout/src/libcore/slice/mod.rs:730
             at /checkout/src/liballoc/vec.rs:1575
             at /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/png-0.9.0/src/decoder/mod.rs:455
             at /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/png-0.9.0/src/utils.rs:33
             at /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/png-0.9.0/src/decoder/mod.rs:452
  11: <png::decoder::Reader<R>>::next_interlaced_row
             at /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/png-0.9.0/src/decoder/mod.rs:273
  12: oxipng::optimize_png
             at /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/png-0.9.0/src/decoder/mod.rs:238
             at /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/png-0.9.0/src/decoder/mod.rs:229
             at /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/image-0.15.0/./src/png.rs:84
             at /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/image-0.15.0/./src/dynimage.rs:470
             at /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/image-0.15.0/./src/dynimage.rs:622
             at /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/image-0.15.0/./src/dynimage.rs:672
             at src/lib.rs:626
  13: oxipng::optimize
             at src/lib.rs:302
  14: oxipng::handle_optimization
             at src/main.rs:267
  15: oxipng::main
             at src/main.rs:234
  16: __rust_maybe_catch_panic
             at /checkout/src/libpanic_unwind/lib.rs:99
  17: std::rt::lang_start
             at /checkout/src/libstd/panicking.rs:459
             at /checkout/src/libstd/panic.rs:361
             at /checkout/src/libstd/rt.rs:59
  18: __libc_start_main
  19: _start
@shssoichiro
Copy link
Owner

Is this an APNG file? Oxipng doesn't currently support animated PNGs (see #79). Perhaps Oxipng should show a more helpful error message on detecting an APNG file, until APNG support is implemented.

@matthiaskrgr
Copy link
Contributor Author

Hmm, I wondered too.
When I crushed the bouncing ball apng from another ticket, oxipng exited more gracefully "The resulting image is corrupted and will not be outputted.", so I assumed that apngs were handled.
However this was not the case here and it crashed so I made the ticket just in case.

@shssoichiro shssoichiro added I-High Issues that are breaking core functionality for a small number of users T-Bug Some piece of the software is not working as intended labels Sep 11, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I-High Issues that are breaking core functionality for a small number of users T-Bug Some piece of the software is not working as intended
Projects
None yet
Development

No branches or pull requests

2 participants