| |
| |
| |
|
|
| |
|
|
| package runtime |
|
|
| import ( |
| "internal/runtime/sys" |
| "unsafe" |
| ) |
|
|
| |
| func ASanRead(addr unsafe.Pointer, len int) { |
| sp := sys.GetCallerSP() |
| pc := sys.GetCallerPC() |
| doasanread(addr, uintptr(len), sp, pc) |
| } |
|
|
| func ASanWrite(addr unsafe.Pointer, len int) { |
| sp := sys.GetCallerSP() |
| pc := sys.GetCallerPC() |
| doasanwrite(addr, uintptr(len), sp, pc) |
| } |
|
|
| |
| const asanenabled = true |
| const asanenabledBit = 1 |
|
|
| |
| |
|
|
| |
| |
| func asanread(addr unsafe.Pointer, sz uintptr) { |
| sp := sys.GetCallerSP() |
| pc := sys.GetCallerPC() |
| doasanread(addr, sz, sp, pc) |
| } |
|
|
| |
| |
| func asanwrite(addr unsafe.Pointer, sz uintptr) { |
| sp := sys.GetCallerSP() |
| pc := sys.GetCallerPC() |
| doasanwrite(addr, sz, sp, pc) |
| } |
|
|
| |
| func doasanread(addr unsafe.Pointer, sz, sp, pc uintptr) |
|
|
| |
| func doasanwrite(addr unsafe.Pointer, sz, sp, pc uintptr) |
|
|
| |
| func asanunpoison(addr unsafe.Pointer, sz uintptr) |
|
|
| |
| func asanpoison(addr unsafe.Pointer, sz uintptr) |
|
|
| |
| func asanregisterglobals(addr unsafe.Pointer, n uintptr) |
|
|
| |
| func lsanregisterrootregion(addr unsafe.Pointer, n uintptr) |
|
|
| |
| func lsanunregisterrootregion(addr unsafe.Pointer, n uintptr) |
|
|
| func lsandoleakcheck() |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|