Skip to content

Commit 828300b

Browse files
committed
Fuzz: Add EbmlFile fuzz target
1 parent f65cd84 commit 828300b

File tree

7 files changed

+20
-6
lines changed

7 files changed

+20
-6
lines changed

fuzz/Cargo.toml

+4
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ path = "fuzz_targets/aifffile_read_from.rs"
4242
name = "apefile_read_from"
4343
path = "fuzz_targets/apefile_read_from.rs"
4444

45+
[[bin]]
46+
name = "ebmlfile_read_from"
47+
path = "fuzz_targets/ebmlfile_read_from.rs"
48+
4549
[[bin]]
4650
name = "flacfile_read_from"
4751
path = "fuzz_targets/flacfile_read_from.rs"
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#![no_main]
2+
3+
use std::io::Cursor;
4+
5+
use libfuzzer_sys::fuzz_target;
6+
use lofty::config::ParseOptions;
7+
use lofty::file::AudioFile;
8+
9+
fuzz_target!(|data: Vec<u8>| {
10+
let _ = lofty::ebml::EbmlFile::read_from(&mut Cursor::new(data), ParseOptions::new());
11+
});

lofty/src/ebml/read/segment.rs

+3-6
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,11 @@ where
3838
ElementIdent::Tracks if parse_options.read_properties => {
3939
segment_tracks::read_from(element_reader, parse_options, properties)?
4040
},
41-
ElementIdent::Tags | ElementIdent::Chapters if parse_options.read_tags => {
41+
// TODO: ElementIdent::Chapters
42+
ElementIdent::Tags if parse_options.read_tags => {
4243
let mut tag = tags.unwrap_or_default();
4344

44-
if id == ElementIdent::Tags {
45-
segment_tags::read_from(element_reader, parse_options, &mut tag)?
46-
} else {
47-
segment_chapters::read_from(element_reader, parse_options, &mut tag)?
48-
}
45+
segment_tags::read_from(element_reader, parse_options, &mut tag)?;
4946

5047
tags = Some(tag);
5148
},

lofty/src/ebml/read/segment_chapters.rs

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use crate::error::Result;
55

66
use std::io::{Read, Seek};
77

8+
#[allow(dead_code)]
89
pub(super) fn read_from<R>(
910
_element_reader: &mut ElementReader<R>,
1011
_parse_options: ParseOptions,

lofty/tests/fuzz/assets/ebmlfile_read_from/.gitkeep

Whitespace-only changes.

lofty/tests/fuzz/ebmlfile_read_from.rs

Whitespace-only changes.

lofty/tests/fuzz/main.rs

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use std::thread;
77
use std::time::Instant;
88

99
mod aifffile_read_from;
10+
mod ebmlfile_read_from;
1011
mod flacfile_read_from;
1112
mod id3v2;
1213
mod mp4file_read_from;

0 commit comments

Comments
 (0)