From 172d97d3451b1c5c434e3774b3be77282da2951c Mon Sep 17 00:00:00 2001 From: Romain Malmain Date: Fri, 24 Jan 2025 01:26:35 +0100 Subject: [PATCH] fix bad parser --- libafl_targets/src/drcov.rs | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/libafl_targets/src/drcov.rs b/libafl_targets/src/drcov.rs index 145c7cece4..b12adf6995 100644 --- a/libafl_targets/src/drcov.rs +++ b/libafl_targets/src/drcov.rs @@ -252,21 +252,16 @@ fn parse_hex_to_u64(str: &str) -> Result { } fn parse_path(s: &str) -> Option { - let mut chars = s.trim().chars(); + let s = s.trim(); - // If first character is a quote, let's remove them - if chars.next()? != '\"' { - - // If first char is a quote, last char must be a quote as well - if chars.next_back()? != '\"' { - log::error!("First character was a quote, but last character was not. Is path well-formed?"); - return None - } - - return None - } + // If first and last character is a quote, let's remove them + let s = if s.starts_with('\"') && s.ends_with('\"'){ + &s[1..s.len() - 1] + } else { + s + }; - Some(PathBuf::from(chars.as_str())) + Some(PathBuf::from(s)) } impl DrCovReader {