Cleanup get_call_data

pull/871/head
Nathan 6 years ago
parent 6a59cb4954
commit 30d3b9a74e
  1. 32
      mythril/laser/ethereum/call.py

@ -179,29 +179,23 @@ def get_call_data(
else memory_size else memory_size
) )
uses_entire_calldata = simplify(
memory_size - global_state.environment.calldata.calldatasize == 0
)
if uses_entire_calldata == True:
return global_state.environment.calldata
try: try:
uses_entire_calldata = False calldata_from_mem = state.memory[
try: util.get_concrete_int(memory_start) : util.get_concrete_int(
uses_entire_calldata = simplify( memory_start + memory_size
memory_size - global_state.environment.calldata.calldatasize == 0
) )
except Z3Exception: ]
pass return ConcreteCalldata(transaction_id, calldata_from_mem)
if uses_entire_calldata:
call_data = global_state.environment.calldata
else:
calldata_from_mem = state.memory[
util.get_concrete_int(memory_start) : util.get_concrete_int(
memory_start + memory_size
)
]
call_data = ConcreteCalldata(transaction_id, calldata_from_mem)
except TypeError: except TypeError:
log.debug("Unsupported symbolic calldata offset") log.debug("Unsupported symbolic calldata offset")
call_data = SymbolicCalldata(transaction_id) return SymbolicCalldata(transaction_id)
return call_data
def native_call( def native_call(

Loading…
Cancel
Save