Fix forkserver regression in LTO mode (#1114)
* regression * fix * chg * Comment * fmt
This commit is contained in:
parent
452ca7a672
commit
2a926f6546
@ -761,7 +761,6 @@ impl<'a, SP> ForkserverExecutorBuilder<'a, SP> {
|
|||||||
// TODO set AFL_MAP_SIZE
|
// TODO set AFL_MAP_SIZE
|
||||||
assert!(self.map_size.is_none() || map_size as usize <= self.map_size.unwrap());
|
assert!(self.map_size.is_none() || map_size as usize <= self.map_size.unwrap());
|
||||||
|
|
||||||
log::info!("Target MAP SIZE = {:#x}", self.real_map_size);
|
|
||||||
self.map_size = Some(map_size as usize);
|
self.map_size = Some(map_size as usize);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -782,6 +781,15 @@ impl<'a, SP> ForkserverExecutorBuilder<'a, SP> {
|
|||||||
self.uses_shmem_testcase = true;
|
self.uses_shmem_testcase = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (status & FS_OPT_AUTODICT == FS_OPT_AUTODICT) && self.autotokens.is_some() {
|
||||||
|
log::info!("Using AUTODICT feature");
|
||||||
|
send_status |= FS_OPT_AUTODICT;
|
||||||
|
}
|
||||||
|
|
||||||
|
if send_status != FS_OPT_ENABLED {
|
||||||
|
// if send_status is not changed (Options are available but we didn't use any), then don't send the next write_ctl message.
|
||||||
|
// This is important
|
||||||
|
|
||||||
let send_len = forkserver.write_ctl(send_status)?;
|
let send_len = forkserver.write_ctl(send_status)?;
|
||||||
if send_len != 4 {
|
if send_len != 4 {
|
||||||
return Err(Error::unknown("Writing to forkserver failed.".to_string()));
|
return Err(Error::unknown("Writing to forkserver failed.".to_string()));
|
||||||
@ -808,11 +816,11 @@ impl<'a, SP> ForkserverExecutorBuilder<'a, SP> {
|
|||||||
if rlen != dict_size as usize {
|
if rlen != dict_size as usize {
|
||||||
return Err(Error::unknown("Failed to load autodictionary".to_string()));
|
return Err(Error::unknown("Failed to load autodictionary".to_string()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(t) = &mut self.autotokens {
|
if let Some(t) = &mut self.autotokens {
|
||||||
t.parse_autodict(&buf, dict_size as usize);
|
t.parse_autodict(&buf, dict_size as usize);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
log::warn!("Forkserver Options are not available.");
|
log::warn!("Forkserver Options are not available.");
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user