aboutsummaryrefslogtreecommitdiffstats
path: root/ethchain/asm.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-07-11 22:04:09 +0800
committerobscuren <geffobscura@gmail.com>2014-07-11 22:04:09 +0800
commit9010857677ac374e09bab62a89f2fb52c11ed6d3 (patch)
tree41c047472589f281fe83b333b24d96988dbc46f8 /ethchain/asm.go
parentff151f9fbcfea2d21139ec778fc7c1ac32282d71 (diff)
downloadgo-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.go4
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}