Explicitly check memory's data store. #515

pull/587/head
obscuren 10 years ago
parent eb102bf4bb
commit 00f8319faf
  1. 9
      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

Loading…
Cancel
Save