eth/tracers: handle invalid mem access better

This commit is contained in:
Martin Holst Swende 2019-12-12 12:28:21 +01:00
parent 191364c350
commit 2b7b8c6ef5
No known key found for this signature in database
GPG key ID: 683B438C05A5DDF0

View file

@ -93,6 +93,13 @@ type memoryWrapper struct {
// slice returns the requested range of memory as a byte slice.
func (mw *memoryWrapper) slice(begin, end int64) []byte {
if end == begin {
return nil
}
if end < begin || begin < 0 {
log.Warn("Tracer accessed memory incorrectly", "offset", begin, "size", end-begin)
return nil
}
if mw.memory.Len() < int(end) {
// TODO(karalabe): We can't js-throw from Go inside duktape inside Go. The Go
// runtime goes belly up https://github.com/golang/go/issues/15639.