mirror of
https://github.com/golang/go
synced 2024-11-12 13:00:57 -07:00
9fe17a0340
The linker's -X flag allows setting/changing a string variable's content at link time. Currently it resets its size then write a new string header pointing to the new content. This mostly works. But under ASAN build the string variable can have larger size than the usual 2 words, due to the red zone. Resetting the size can cause the variable to "overlap" (in ASAN's view) with other variables. Don't reset the size. Fixes #56175. Change-Id: Ib364208201a7a2fd7f44f9b1797834198736a405 Reviewed-on: https://go-review.googlesource.com/c/go/+/442635 TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Cherry Mui <cherryyz@google.com> Reviewed-by: Than McIntosh <thanm@google.com>
29 lines
463 B
Go
29 lines
463 B
Go
package main
|
|
|
|
import "misc/cgo/testsanitizers/testdata/asan_linkerx/p"
|
|
|
|
func pstring(s *string) {
|
|
println(*s)
|
|
}
|
|
|
|
func main() {
|
|
all := []*string{
|
|
&S1, &S2, &S3, &S4, &S5, &S6, &S7, &S8, &S9, &S10,
|
|
&p.S1, &p.S2, &p.S3, &p.S4, &p.S5, &p.S6, &p.S7, &p.S8, &p.S9, &p.S10,
|
|
}
|
|
for _, ps := range all {
|
|
pstring(ps)
|
|
}
|
|
}
|
|
|
|
var S1 string
|
|
var S2 string
|
|
var S3 string
|
|
var S4 string
|
|
var S5 string
|
|
var S6 string
|
|
var S7 string
|
|
var S8 string
|
|
var S9 string
|
|
var S10 string
|