diff options
author | obscuren <geffobscura@gmail.com> | 2014-07-11 22:04:09 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-07-11 22:04:09 +0800 |
commit | 9010857677ac374e09bab62a89f2fb52c11ed6d3 (patch) | |
tree | 41c047472589f281fe83b333b24d96988dbc46f8 /ethchain/asm.go | |
parent | ff151f9fbcfea2d21139ec778fc7c1ac32282d71 (diff) | |
download | go-tangerine-9010857677ac374e09bab62a89f2fb52c11ed6d3.tar go-tangerine-9010857677ac374e09bab62a89f2fb52c11ed6d3.tar.gz go-tangerine-9010857677ac374e09bab62a89f2fb52c11ed6d3.tar.bz2 go-tangerine-9010857677ac374e09bab62a89f2fb52c11ed6d3.tar.lz go-tangerine-9010857677ac374e09bab62a89f2fb52c11ed6d3.tar.xz go-tangerine-9010857677ac374e09bab62a89f2fb52c11ed6d3.tar.zst go-tangerine-9010857677ac374e09bab62a89f2fb52c11ed6d3.zip |
Special diff output for execution
Diffstat (limited to 'ethchain/asm.go')
-rw-r--r-- | ethchain/asm.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/ethchain/asm.go b/ethchain/asm.go index 09d6af56f..2697953fd 100644 --- a/ethchain/asm.go +++ b/ethchain/asm.go @@ -24,6 +24,10 @@ func Disassemble(script []byte) (asm []string) { case PUSH1, PUSH2, PUSH3, PUSH4, PUSH5, PUSH6, PUSH7, PUSH8, PUSH9, PUSH10, PUSH11, PUSH12, PUSH13, PUSH14, PUSH15, PUSH16, PUSH17, PUSH18, PUSH19, PUSH20, PUSH21, PUSH22, PUSH23, PUSH24, PUSH25, PUSH26, PUSH27, PUSH28, PUSH29, PUSH30, PUSH31, PUSH32: pc.Add(pc, ethutil.Big1) a := int64(op) - int64(PUSH1) + 1 + if int(pc.Int64()+a) > len(script) { + return nil + } + data := script[pc.Int64() : pc.Int64()+a] if len(data) == 0 { data = []byte{0} |