Extend memory

pull/379/head
Joran Honig 6 years ago
parent d092064f67
commit 133bc11ec1
  1. 8
      mythril/laser/ethereum/instructions.py

@ -520,14 +520,16 @@ class Instruction:
try: try:
concrete_memory_offset = helper.get_concrete_int(memory_offset) concrete_memory_offset = helper.get_concrete_int(memory_offset)
except: except AttributeError:
logging.debug("Unsupported symbolic memory offset in CODECOPY") logging.debug("Unsupported symbolic memory offset in CODECOPY")
return [global_state] return [global_state]
try: try:
concrete_size = helper.get_concrete_int(size) concrete_size = helper.get_concrete_int(size)
global_state.mstate.mem_extend(concrete_memory_offset, concrete_size)
except: except:
logging.debug("Unsupported symbolic size in CODECOPY") # except both attribute error and Exception
global_state.mstate.mem_extend(concrete_memory_offset, 1) global_state.mstate.mem_extend(concrete_memory_offset, 1)
global_state.mstate.memory[concrete_memory_offset] = \ global_state.mstate.memory[concrete_memory_offset] = \
BitVec("code({})".format(global_state.environment.active_account.contract_name), 256) BitVec("code({})".format(global_state.environment.active_account.contract_name), 256)
@ -535,7 +537,7 @@ class Instruction:
try: try:
concrete_code_offset = helper.get_concrete_int(code_offset) concrete_code_offset = helper.get_concrete_int(code_offset)
except: except AttributeError:
logging.debug("Unsupported symbolic code offset in CODECOPY") logging.debug("Unsupported symbolic code offset in CODECOPY")
global_state.mstate.mem_extend(concrete_memory_offset, concrete_size) global_state.mstate.mem_extend(concrete_memory_offset, concrete_size)
for i in range(concrete_size): for i in range(concrete_size):

Loading…
Cancel
Save