From c32bca45ad753da69a5530a1ee96ff069e937fc2 Mon Sep 17 00:00:00 2001
From: obscuren <geffobscura@gmail.com>
Date: Thu, 26 Mar 2015 17:45:09 +0100
Subject: Stack limit

---
 core/vm/stack.go | 6 ++++++
 1 file changed, 6 insertions(+)

(limited to 'core')

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
-- 
cgit v1.2.3