forked from cerc-io/plugeth
Stack limit
This commit is contained in:
parent
d36501a6e5
commit
c32bca45ad
@ -5,6 +5,8 @@ import (
|
|||||||
"math/big"
|
"math/big"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const maxStack = 1024
|
||||||
|
|
||||||
func newStack() *stack {
|
func newStack() *stack {
|
||||||
return &stack{}
|
return &stack{}
|
||||||
}
|
}
|
||||||
@ -15,6 +17,10 @@ type stack struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (st *stack) push(d *big.Int) {
|
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)
|
stackItem := new(big.Int).Set(d)
|
||||||
if len(st.data) > st.ptr {
|
if len(st.data) > st.ptr {
|
||||||
st.data[st.ptr] = stackItem
|
st.data[st.ptr] = stackItem
|
||||||
|
Loading…
Reference in New Issue
Block a user