Fuzz: Add EbmlFile fuzz target

This commit is contained in:
Serial 2024-08-30 23:33:23 -04:00
parent 009defc797
commit 1c30150836
No known key found for this signature in database
GPG key ID: DA95198DC17C4568
7 changed files with 20 additions and 6 deletions

View file

@ -50,6 +50,10 @@ path = "fuzz_targets/apefile_read_from.rs"
test = false
doc = false
[[bin]]
name = "ebmlfile_read_from"
path = "fuzz_targets/ebmlfile_read_from.rs"
[[bin]]
name = "flacfile_read_from"
path = "fuzz_targets/flacfile_read_from.rs"

View file

@ -0,0 +1,11 @@
#![no_main]
use std::io::Cursor;
use libfuzzer_sys::fuzz_target;
use lofty::config::ParseOptions;
use lofty::file::AudioFile;
fuzz_target!(|data: Vec<u8>| {
let _ = lofty::ebml::EbmlFile::read_from(&mut Cursor::new(data), ParseOptions::new());
});

View file

@ -38,14 +38,11 @@ where
ElementIdent::Tracks if parse_options.read_properties => {
segment_tracks::read_from(element_reader, parse_options, properties)?
},
ElementIdent::Tags | ElementIdent::Chapters if parse_options.read_tags => {
// TODO: ElementIdent::Chapters
ElementIdent::Tags if parse_options.read_tags => {
let mut tag = tags.unwrap_or_default();
if id == ElementIdent::Tags {
segment_tags::read_from(element_reader, parse_options, &mut tag)?
} else {
segment_chapters::read_from(element_reader, parse_options, &mut tag)?
}
segment_tags::read_from(element_reader, parse_options, &mut tag)?;
tags = Some(tag);
},

View file

@ -5,6 +5,7 @@ use crate::error::Result;
use std::io::{Read, Seek};
#[allow(dead_code)]
pub(super) fn read_from<R>(
_element_reader: &mut ElementReader<R>,
_parse_options: ParseOptions,

View file

View file

@ -11,6 +11,7 @@ use std::time::Instant;
mod aacfile_read_from;
mod aifffile_read_from;
mod apefile_read_from;
mod ebmlfile_read_from;
mod flacfile_read_from;
mod id3v2;
mod mp4file_read_from;