From abed61cc492ec69287944c18cdcbeb1fb2ea1ce8 Mon Sep 17 00:00:00 2001 From: Andrea Fioraldi Date: Mon, 21 Jun 2021 17:38:36 +0200 Subject: [PATCH] Propagate exit code in the compiler wrapper --- fuzzers/fuzzbench/src/bin/libafl_cc.rs | 7 ++++--- libafl_cc/src/lib.rs | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/fuzzers/fuzzbench/src/bin/libafl_cc.rs b/fuzzers/fuzzbench/src/bin/libafl_cc.rs index 0493498e1c..f52e24cfd8 100644 --- a/fuzzers/fuzzbench/src/bin/libafl_cc.rs +++ b/fuzzers/fuzzbench/src/bin/libafl_cc.rs @@ -17,8 +17,7 @@ fn main() { let mut cc = ClangWrapper::new("clang", "clang++"); - cc.is_cpp(is_cpp) - .silence() + if let Some(code) = cc.is_cpp(is_cpp) .from_args(&args) .unwrap() .link_staticlib(&dir, "fuzzbench".into()) @@ -28,7 +27,9 @@ fn main() { // silence the compiler wrapper output, needed for some configure scripts. .silence() .run() - .unwrap(); + .unwrap() { + std::process::exit(code); + } } else { panic!("LibAFL CC: No Arguments given"); } diff --git a/libafl_cc/src/lib.rs b/libafl_cc/src/lib.rs index 6c1c259962..fcaf37bbc8 100644 --- a/libafl_cc/src/lib.rs +++ b/libafl_cc/src/lib.rs @@ -58,7 +58,7 @@ pub trait CompilerWrapper { fn is_silent(&self) -> bool; /// Run the compiler - fn run(&mut self) -> Result<(), Error> { + fn run(&mut self) -> Result, Error> { let args = self.command()?; if !self.is_silent() { @@ -76,7 +76,7 @@ pub trait CompilerWrapper { if !self.is_silent() { dbg!(status); } - Ok(()) + Ok(status.code()) } }