From 2d0a91eb18cfaaa92a5fdde87cc969a9f2c21656 Mon Sep 17 00:00:00 2001 From: John Turner Date: Tue, 18 Nov 2025 02:46:33 +0000 Subject: [PATCH] check if fuzz input is graphical before decoding it to UTF8 --- fuzz/fuzz.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fuzz/fuzz.rs b/fuzz/fuzz.rs index ca87a47..4e48f1d 100644 --- a/fuzz/fuzz.rs +++ b/fuzz/fuzz.rs @@ -37,15 +37,15 @@ pub unsafe extern "C" fn LLVMFuzzerTestOneInput(input: *const u8, len: usize) -> let slice = unsafe { slice::from_raw_parts(input, len) }; + if slice.iter().any(|b| !b.is_ascii_graphic()) { + return -1; + } + let str = match str::from_utf8(slice) { Ok(str) => str, Err(_) => return -1, }; - if !str.chars().all(|c| c.is_ascii_graphic()) { - return -1; - } - let atom = str.trim(); let mut stdin = PY_PROCESS.stdin.lock().expect("failed to get stdin lock");