Files

26 lines
744 B
Rust

#![no_main]
// SPDX-License-Identifier: AGPL-3.0-or-later
use fluxer_markdown_parser::{EmojiContext, MarkdownParser, ParserFlags};
use libfuzzer_sys::fuzz_target;
fuzz_target!(|data: &[u8]| {
if data.is_empty() {
return;
}
let flag_seed = data
.iter()
.take(4)
.enumerate()
.fold(0_u32, |acc, (index, byte)| {
acc | ((*byte as u32) << (index * 8))
});
let flags = flag_seed & ((ParserFlags::ALLOW_AUTOLINKS << 1) - 1);
let input = String::from_utf8_lossy(&data[4.min(data.len())..]);
let mut parser = MarkdownParser::new(flags, EmojiContext::default());
if let Ok(nodes) = parser.parse(&input) {
let _ = serde_json::to_string(&nodes);
}
});