OXIESEC PANEL
- Current Dir:
/
/
opt
/
golang
/
1.22.0
/
test
/
uintptrescapes.dir
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/02/2024 06:09:55 PM
rwxr-xr-x
📄
a.go
879 bytes
02/02/2024 06:09:55 PM
rw-r--r--
📄
main.go
1.28 KB
02/02/2024 06:09:55 PM
rw-r--r--
Editing: a.go
Close
// Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package a import ( "unsafe" ) func recurse(i int, s []byte) byte { s[0] = byte(i) if i == 0 { return s[i] } else { var a [1024]byte r := recurse(i-1, a[:]) return r + a[0] } } //go:uintptrescapes func F1(a uintptr) { var s [16]byte recurse(4096, s[:]) *(*int)(unsafe.Pointer(a)) = 42 } //go:uintptrescapes func F2(a ...uintptr) { var s [16]byte recurse(4096, s[:]) *(*int)(unsafe.Pointer(a[0])) = 42 } type t struct{} func GetT() *t { return &t{} } //go:uintptrescapes func (*t) M1(a uintptr) { var s [16]byte recurse(4096, s[:]) *(*int)(unsafe.Pointer(a)) = 42 } //go:uintptrescapes func (*t) M2(a ...uintptr) { var s [16]byte recurse(4096, s[:]) *(*int)(unsafe.Pointer(a[0])) = 42 }