diff --git a/src/evm/host.rs b/src/evm/host.rs index 652a8bc00..a8b1587b7 100644 --- a/src/evm/host.rs +++ b/src/evm/host.rs @@ -247,8 +247,8 @@ pub static mut ACTIVE_MATCH_EXT_CALL: bool = false; const CONTROL_LEAK_DETECTION: bool = false; const UNBOUND_CALL_THRESHOLD: usize = 3; -// if a PC transfers control to >2 addresses, we consider call at this PC to be unbounded -const CONTROL_LEAK_THRESHOLD: usize = 2; +// if a PC transfers control to >10 addresses, we consider call at this PC to be unbounded +const CONTROL_LEAK_THRESHOLD: usize = 10; impl FuzzHost where diff --git a/src/evm/oracles/erc20.rs b/src/evm/oracles/erc20.rs index d28ee106d..ceb51da14 100644 --- a/src/evm/oracles/erc20.rs +++ b/src/evm/oracles/erc20.rs @@ -160,7 +160,7 @@ impl Oracle, if exec_res.new_state.state.flashloan_data.earned > exec_res.new_state.state.flashloan_data.owed - && exec_res.new_state.state.flashloan_data.earned - exec_res.new_state.state.flashloan_data.owed > EVMU512::from(50_000_000_000_000_000_000_000_0u128) // > 0.5ETH + && exec_res.new_state.state.flashloan_data.earned - exec_res.new_state.state.flashloan_data.owed > EVMU512::from(10_000_000_000_000_000_000_000_0u128) // > 0.1ETH { let net = exec_res.new_state.state.flashloan_data.earned - exec_res.new_state.state.flashloan_data.owed; diff --git a/src/evm/vm.rs b/src/evm/vm.rs index ee285329b..cf8022862 100644 --- a/src/evm/vm.rs +++ b/src/evm/vm.rs @@ -844,9 +844,8 @@ where | InstructionResult::ControlLeak | InstructionResult::SelfDestruct | InstructionResult::AddressUnboundedStaticCall - | InstructionResult::ArbitraryExternalCallAddressBounded(_, _, _) => false, - _ => true, - }, + | InstructionResult::ArbitraryExternalCallAddressBounded(_, _, _) + ), new_state: StagedVMState::new_with_state( VMStateT::as_any(&r.new_state) .downcast_ref_unchecked::()