sourrust/flac

index out of bounds panic when parsing bytes

frewsxcv opened this issue · 0 comments

extern crate flac;

use flac::{ByteStream, Stream};

fn main() {
    let s = Stream::<ByteStream>::from_buffer(b"fLaC\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00H\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\\");
    if let Ok(mut stream) = s {
        let _ = stream.info();
        let _ = stream.metadata();
        let mut iter = stream.iter::<i8>();
        while iter.next().is_some() { }
    }
}
thread 'main' panicked at 'index out of bounds: the len is 0 but the index is 0', /root/.cargo/git/checkouts/flac-34fb57da42139a77/9549bf8/src/utility/macros.rs:9

Found via https://github.com/rust-fuzz/cargo-fuzz