mirror of
https://github.com/fluxerapp/fluxer.git
synced 2026-09-03 05:10:25 +03:00
26 lines
744 B
Rust
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);
|
|
}
|
|
});
|