Skip to content

Commit 72b9536

Browse files
committed
fix memmod checkptr fail
1 parent dcc0eb7 commit 72b9536

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

driver/memmod/memmod_windows.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -690,7 +690,7 @@ func alignUp(value, alignment uintptr) uintptr {
690690
}
691691

692692
func a2p(addr uintptr) unsafe.Pointer {
693-
return unsafe.Pointer(addr)
693+
return unsafe.Add(unsafe.Pointer(nil), addr)
694694
}
695695

696696
func memcpy(dst, src, size uintptr) {

driver/memmod/syscall_windows.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,14 @@ type IMAGE_NT_HEADERS struct {
117117
}
118118

119119
func (ntheader *IMAGE_NT_HEADERS) Sections() []IMAGE_SECTION_HEADER {
120-
return (*[0xffff]IMAGE_SECTION_HEADER)(unsafe.Pointer(
121-
(uintptr)(unsafe.Pointer(ntheader)) +
122-
unsafe.Offsetof(ntheader.OptionalHeader) +
123-
uintptr(ntheader.FileHeader.SizeOfOptionalHeader)))[:ntheader.FileHeader.NumberOfSections]
120+
ptr := unsafe.Pointer(ntheader)
121+
ptr = unsafe.Add(ptr, unsafe.Offsetof(ntheader.OptionalHeader))
122+
ptr = unsafe.Add(ptr, ntheader.FileHeader.SizeOfOptionalHeader)
123+
124+
return unsafe.Slice(
125+
(*IMAGE_SECTION_HEADER)(ptr),
126+
ntheader.FileHeader.NumberOfSections,
127+
)
124128
}
125129

126130
const (

0 commit comments

Comments
 (0)