Right pad bytes to prevent future programmers making bugs
This commit is contained in:
		
							
								
								
									
										10
									
								
								vm/memory.go
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								vm/memory.go
									
									
									
									
									
								
							@@ -1,6 +1,10 @@
 | 
			
		||||
package vm
 | 
			
		||||
 | 
			
		||||
import "fmt"
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"github.com/ethereum/go-ethereum/common"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type Memory struct {
 | 
			
		||||
	store []byte
 | 
			
		||||
@@ -11,7 +15,8 @@ func NewMemory() *Memory {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m *Memory) Set(offset, size uint64, value []byte) {
 | 
			
		||||
	if len(value) > 0 {
 | 
			
		||||
	value = common.RightPadBytes(value, int(size))
 | 
			
		||||
 | 
			
		||||
	totSize := offset + size
 | 
			
		||||
	lenSize := uint64(len(m.store) - 1)
 | 
			
		||||
	if totSize > lenSize {
 | 
			
		||||
@@ -25,7 +30,6 @@ func (m *Memory) Set(offset, size uint64, value []byte) {
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	copy(m.store[offset:offset+size], value)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m *Memory) Resize(size uint64) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user