mirror of
https://github.com/microsoft/onefuzz.git
synced 2025-06-18 04:38:09 +00:00
handle non-utf8 from libfuzzer stderr (#379)
This commit is contained in:
@ -143,11 +143,16 @@ impl LibFuzzerFuzzTask {
|
|||||||
.stderr
|
.stderr
|
||||||
.as_mut()
|
.as_mut()
|
||||||
.ok_or_else(|| format_err!("stderr not captured"))?;
|
.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 libfuzzer_output = Vec::new();
|
||||||
let mut lines = stderr.lines();
|
loop {
|
||||||
while let Some(line) = lines.next_line().await? {
|
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 Some(stats_sender) = stats_sender {
|
||||||
if let Err(err) = try_report_iter_update(stats_sender, worker_id, run_id, &line) {
|
if let Err(err) = try_report_iter_update(stats_sender, worker_id, run_id, &line) {
|
||||||
error!("could not parse fuzzing interation update: {}", err);
|
error!("could not parse fuzzing interation update: {}", err);
|
||||||
|
Reference in New Issue
Block a user