From 87e9d1920c31eba954ba755c940687a0fe7f1bfe Mon Sep 17 00:00:00 2001 From: John Turner Date: Sun, 14 Dec 2025 02:53:49 +0000 Subject: [PATCH] allow fuzzer disagreements where there are duplicated usedeps in the atom Portage rejects atoms with duplicated usedeps that are otherwise valid, gentoo-utils accepts these as valid however. So we will not panic on cases of disagreement where the control side fails and we detect duplicated usedeps. --- fuzz/atom/parser/fuzz.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/fuzz/atom/parser/fuzz.rs b/fuzz/atom/parser/fuzz.rs index 2acc1e9..83d5787 100644 --- a/fuzz/atom/parser/fuzz.rs +++ b/fuzz/atom/parser/fuzz.rs @@ -56,6 +56,16 @@ pub unsafe extern "C" fn LLVMFuzzerTestOneInput(input: *const u8, len: usize) -> (Ok(_), Err(rest)) => { panic!("disagreement on {str}\ncontrol:Ok\ngentoo-utils:Err({rest})"); } + (Err(_), Ok(atom)) + if atom + .usedeps() + .iter() + .any(|usedep| atom.usedeps().iter().filter(|u| usedep == *u).count() > 1) => + { + eprintln!( + "disagreement, but we will allow it since its probably because of duplicated usdeps" + ); + } (Err(_), Ok(_)) => { panic!("disagreement on {str}\ncontrol:Err\ngentoo-utils:Ok") }