mirror of https://github.com/golang/go.git
debug/buildinfo: add test for malformed strings
Updates #68592. Change-Id: I00c6c740ca0bdd19af24e08a219ec3c90196097e Reviewed-on: https://go-review.googlesource.com/c/go/+/601458 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Auto-Submit: Michael Pratt <mpratt@google.com>
This commit is contained in:
parent
28aed4015e
commit
fd7d5a6e6c
|
|
@ -134,6 +134,22 @@ func TestReadFile(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
damageStringLen := func(t *testing.T, name string) {
|
||||
data, err := os.ReadFile(name)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
i := bytes.Index(data, []byte("\xff Go buildinf:"))
|
||||
if i < 0 {
|
||||
t.Fatal("Go buildinf not found")
|
||||
}
|
||||
verLen := data[i+32:]
|
||||
binary.PutUvarint(verLen, 16<<40) // 16TB ought to be enough for anyone.
|
||||
if err := os.WriteFile(name, data, 0666); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
goVersionRe := regexp.MustCompile("(?m)^go\t.*\n")
|
||||
buildRe := regexp.MustCompile("(?m)^build\t.*\n")
|
||||
cleanOutputForComparison := func(got string) string {
|
||||
|
|
@ -193,6 +209,15 @@ func TestReadFile(t *testing.T) {
|
|||
},
|
||||
wantErr: "not a Go executable",
|
||||
},
|
||||
{
|
||||
name: "invalid_str_len",
|
||||
build: func(t *testing.T, goos, goarch, buildmode string) string {
|
||||
name := buildWithModules(t, goos, goarch, buildmode)
|
||||
damageStringLen(t, name)
|
||||
return name
|
||||
},
|
||||
wantErr: "not a Go executable",
|
||||
},
|
||||
{
|
||||
name: "valid_gopath",
|
||||
build: buildWithGOPATH,
|
||||
|
|
|
|||
Loading…
Reference in New Issue