Files

29 lines
1.3 KiB
Rust

#![no_main]
// SPDX-License-Identifier: AGPL-3.0-or-later
use fluxer_media_proxy::{disposition, mime, percent_decode, public_net_policy, query, range};
use libfuzzer_sys::fuzz_target;
fuzz_target!(|data: &[u8]| {
let _ = mime::sniff(data);
let _ = mime::sniff_prefix(data, data.len());
let _ = mime::sniff_prefix(data, data.len().saturating_mul(2).saturating_add(1));
if let Ok(text) = std::str::from_utf8(data) {
let _ = range::parse_range(Some(text), data.len().saturating_mul(3).saturating_add(1));
let _ = range::parse_bounded_request_range(Some(text), 1024 * 1024);
let _ = range::parse_content_range(Some(text));
let _ = query::split_target(text);
let _ = query::Query::parse(text);
let _ = public_net_policy::parse_url(text);
let _ = public_net_policy::resolve_redirect("https://example.com/a/b/c?x=1", text);
let _ = percent_decode::decode_utf8(text);
let _ = disposition::is_inline_viewable(text);
let inline = disposition::decide(text, false);
let attachment = disposition::decide(text, true);
let _ = disposition::header(inline, Some(text));
let _ = disposition::header(attachment, Some(text));
let _ = disposition::header(attachment, None);
}
});