handle non-utf8 from libfuzzer stderr (#379)

This commit is contained in:
bmc-msft
2020-12-10 15:13:14 -05:00
committed by GitHub
parent 56090cb01d
commit 7f5673eb21

View File

@ -143,11 +143,16 @@ impl LibFuzzerFuzzTask {
.stderr
.as_mut()
.ok_or_else(|| format_err!("stderr not captured"))?;
let stderr = BufReader::new(stderr);
let mut stderr = BufReader::new(stderr);
let mut libfuzzer_output = Vec::new();
let mut lines = stderr.lines();
while let Some(line) = lines.next_line().await? {
loop {
let mut buf = vec![];
let bytes_read = stderr.read_until(b'\n', &mut buf).await?;
if bytes_read == 0 && buf.is_empty() {
break;
}
let line = String::from_utf8_lossy(&buf).to_string();
if let Some(stats_sender) = stats_sender {
if let Err(err) = try_report_iter_update(stats_sender, worker_id, run_id, &line) {
error!("could not parse fuzzing interation update: {}", err);