diff options
author | obscuren <geffobscura@gmail.com> | 2015-03-27 00:45:09 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-03-27 00:45:09 +0800 |
commit | c32bca45ad753da69a5530a1ee96ff069e937fc2 (patch) | |
tree | 61b78bbbc0eaa81322b7e6b21dc70bc5b21d7dd2 /core | |
parent | d36501a6e54e1c794af0c7109e937f7f7c74de79 (diff) | |
download | go-tangerine-c32bca45ad753da69a5530a1ee96ff069e937fc2.tar.gz go-tangerine-c32bca45ad753da69a5530a1ee96ff069e937fc2.tar.zst go-tangerine-c32bca45ad753da69a5530a1ee96ff069e937fc2.zip |
Stack limit
Diffstat (limited to 'core')
-rw-r--r-- | core/vm/stack.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/core/vm/stack.go b/core/vm/stack.go index c5c2774db..1e093476b 100644 --- a/core/vm/stack.go +++ b/core/vm/stack.go @@ -5,6 +5,8 @@ import ( "math/big" ) +const maxStack = 1024 + func newStack() *stack { return &stack{} } @@ -15,6 +17,10 @@ type stack struct { } func (st *stack) push(d *big.Int) { + if len(st.data) == maxStack { + panic(fmt.Sprintf("stack limit reached (%d)", maxStack)) + } + stackItem := new(big.Int).Set(d) if len(st.data) > st.ptr { st.data[st.ptr] = stackItem |