diff options
| author | John Turner <jturner.usa@gmail.com> | 2025-11-18 02:46:33 +0000 |
|---|---|---|
| committer | John Turner <jturner.usa@gmail.com> | 2025-11-18 02:46:33 +0000 |
| commit | 2d0a91eb18cfaaa92a5fdde87cc969a9f2c21656 (patch) | |
| tree | d5f3354c15bca27e1150417001202cf0eed6c1ca | |
| parent | 46c3c075d186f281272fa871be278a12091c57de (diff) | |
| download | gentoo-utils-2d0a91eb18cfaaa92a5fdde87cc969a9f2c21656.tar.gz | |
check if fuzz input is graphical before decoding it to UTF8
| -rw-r--r-- | fuzz/fuzz.rs | 8 |
1 files 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"); |
