crytic / ethersplay

EVM dissassembler
GNU Affero General Public License v3.0
838 stars 118 forks source link

Multiple swarm hashes can result in endless loop #48

Open f0rki opened 5 years ago

f0rki commented 5 years ago

Currently there is a possible infinite loop when multiple swarm hashes are in the bytecode. I think the Problem is in evm.py#L373

Currently the line is:

offset = data[offset+1:].find(b'\xa1ebzzr0')

However, here find will return the offset in the string slice and not in the original data, so it is possible for the next offset to be smaller than the previous offset.

Replacing that line with

offset = data.find(b'\xa1ebzzr0', offset + 1)

seems to fix the problem.