Skip to content

Commit b8d534b

Browse files
committed
consensus/ethash: fix bug in memoryMapFile
1 parent acd4ea3 commit b8d534b

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

consensus/ethash/ethash.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,12 @@ func memoryMapFile(file *os.File, write bool) (mmap.MMap, []uint32, error) {
113113
return nil, nil, err
114114
}
115115
// The file is now memory-mapped. Create a []uint32 view of the file.
116-
header := (*reflect.SliceHeader)(unsafe.Pointer(&mem))
117-
header.Len /= 4
118-
header.Cap /= 4
119-
return mem, *(*[]uint32)(unsafe.Pointer(header)), nil
116+
var view []uint32
117+
header := (*reflect.SliceHeader)(unsafe.Pointer(&view))
118+
header.Data = (*reflect.SliceHeader)(unsafe.Pointer(&mem)).Data
119+
header.Cap = len(mem) / 4
120+
header.Len = header.Cap
121+
return mem, view, nil
120122
}
121123

122124
// memoryMapAndGenerate tries to memory map a temporary file of uint32s for write

0 commit comments

Comments
 (0)