github.com/sagernet/sing@v0.2.6/common/buf/ptr.go (about) 1 //go:build !disable_unsafe 2 3 package buf 4 5 import ( 6 "unsafe" 7 8 "github.com/sagernet/sing/common" 9 ) 10 11 type dbgVar struct { 12 name string 13 value *int32 14 } 15 16 //go:linkname dbgvars runtime.dbgvars 17 var dbgvars any 18 19 // go.info.runtime.dbgvars: relocation target go.info.[]github.com/sagernet/sing/common/buf.dbgVar not defined 20 // var dbgvars []dbgVar 21 22 func init() { 23 if !common.UnsafeBuffer { 24 return 25 } 26 debugVars := *(*[]dbgVar)(unsafe.Pointer(&dbgvars)) 27 for _, v := range debugVars { 28 if v.name == "invalidptr" { 29 *v.value = 0 30 return 31 } 32 } 33 panic("can't disable invalidptr") 34 }