Skip to content

Commit 41a96cd

Browse files
authored
fix-fuzz-targets (#103)
* fix-fuzz-targets Dearest Reviewer, While creating PR #102 I tried running the fuzz command and found it failing. It looks like the functions were made private and parse headers arguments were updated. I dont know if this is a complete update or what is covered but it does get `cargo +nightly fuzz run mail_parser` working again. Thanks for your time. Becker * readd space
1 parent b0ba8db commit 41a96cd

File tree

2 files changed

+52
-20
lines changed

2 files changed

+52
-20
lines changed

fuzz/Cargo.lock

Lines changed: 49 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

fuzz/fuzz_targets/mail_parser.rs

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,7 @@ use libfuzzer_sys::fuzz_target;
44
use mail_parser::{
55
decoders::{
66
base64::base64_decode,
7-
charsets::{
8-
map::charset_decoder,
9-
single_byte::decoder_iso_8859_1,
10-
utf::{decoder_utf16, decoder_utf16_be, decoder_utf16_le, decoder_utf7},
11-
},
7+
charsets::map::charset_decoder,
128
hex::decode_hex,
139
html::{add_html_token, html_to_text, text_to_html},
1410
quoted_printable::quoted_printable_decode,
@@ -17,7 +13,7 @@ use mail_parser::{
1713
fields::thread::{thread_name, trim_trailing_fwd},
1814
MessageStream,
1915
},
20-
Message,
16+
Message, MessageParser,
2117
};
2218

2319
static RFC822_ALPHABET: &[u8] = b"0123456789abcdefghijklm:=- \r\n";
@@ -38,7 +34,7 @@ fuzz_target!(|data: &[u8]| {
3834
MessageStream::new(data).parse_raw();
3935
MessageStream::new(data).parse_unstructured();
4036
MessageStream::new(data).parse_content_type();
41-
MessageStream::new(data).parse_headers(&mut Vec::new());
37+
MessageStream::new(data).parse_headers(&MessageParser::default(), &mut Vec::new());
4238
MessageStream::new(data).parse_header_name();
4339
MessageStream::new(data).decode_rfc2047();
4440

@@ -68,17 +64,6 @@ fuzz_target!(|data: &[u8]| {
6864
decode_hex(data);
6965
charset_decoder(data);
7066

71-
for decoder in &[
72-
decoder_utf7,
73-
decoder_utf16_le,
74-
decoder_utf16_be,
75-
decoder_utf16,
76-
decoder_iso_8859_1,
77-
] as &[for<'x> fn(&'x [u8]) -> String]
78-
{
79-
decoder(data);
80-
}
81-
8267
// Fuzz the entire library
8368
MessageParser::default().parse(data);
8469
}

0 commit comments

Comments
 (0)