Skip to content

Commit

Permalink
Fuzz: Add EbmlFile fuzz target
Browse files Browse the repository at this point in the history
  • Loading branch information
Serial-ATA committed Aug 31, 2024
1 parent f65cd84 commit 828300b
Show file tree
Hide file tree
Showing 7 changed files with 20 additions and 6 deletions.
4 changes: 4 additions & 0 deletions fuzz/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,10 @@ path = "fuzz_targets/aifffile_read_from.rs"
name = "apefile_read_from"
path = "fuzz_targets/apefile_read_from.rs"

[[bin]]
name = "ebmlfile_read_from"
path = "fuzz_targets/ebmlfile_read_from.rs"

[[bin]]
name = "flacfile_read_from"
path = "fuzz_targets/flacfile_read_from.rs"
Expand Down
11 changes: 11 additions & 0 deletions fuzz/fuzz_targets/ebmlfile_read_from.rs
Original file line number Diff line number Diff line change
@@ -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());
});
9 changes: 3 additions & 6 deletions lofty/src/ebml/read/segment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
},
Expand Down
1 change: 1 addition & 0 deletions lofty/src/ebml/read/segment_chapters.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Empty file.
Empty file.
1 change: 1 addition & 0 deletions lofty/tests/fuzz/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ use std::thread;
use std::time::Instant;

mod aifffile_read_from;
mod ebmlfile_read_from;
mod flacfile_read_from;
mod id3v2;
mod mp4file_read_from;
Expand Down

0 comments on commit 828300b

Please sign in to comment.