mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-07 19:22:14 +09:00
29 lines
1.3 KiB
Rust
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);
|
|
}
|
|
});
|