kingfisher/fuzz/fuzz_targets/fuzz_base64.rs
2026-03-19 23:52:38 -07:00

16 lines
552 B
Rust

#![no_main]
use libfuzzer_sys::fuzz_target;
use kingfisher_scanner::primitives::get_base64_strings;
fuzz_target!(|data: &[u8]| {
let results = get_base64_strings(data);
for decoded in &results {
// Every returned span must be within the input bounds
assert!(decoded.pos_start <= decoded.pos_end);
assert!(decoded.pos_end <= data.len());
// Decoded data must be non-empty and ASCII (per the function contract)
assert!(!decoded.decoded.is_empty());
assert!(decoded.decoded.is_ascii());
}
});