aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/vm/memory.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/core/vm/memory.go b/core/vm/memory.go
index dd47fa1b5..f5984d82f 100644
--- a/core/vm/memory.go
+++ b/core/vm/memory.go
@@ -15,10 +15,17 @@ func NewMemory() *Memory {
}
func (m *Memory) Set(offset, size uint64, value []byte) {
+ // If the length of the store is 0 this is a complete failure
+ // memory size is set prior to calling this method so enough size
+ // should always be available.
+ if len(m.store) == 0 {
+ panic("INVALID memory: store empty")
+ }
+
value = common.RightPadBytes(value, int(size))
totSize := offset + size
- lenSize := uint64(len(m.store) - 1)
+ lenSize := int64(len(m.store) - 1)
if totSize > lenSize {
// Calculate the diff between the sizes
diff := totSize - lenSize