cmd/go-contrib-init: don't crash from src/golang.org/x

If go-contrib-init is executed from the src/golang.org/x directory (as
opposed to a sub-directory), it crashes with an index out-of-bounds.

Fix this by including the trailing slash in the inspected path prefix
so we never slice more than what we know is in the string.

Change-Id: Ibbb74759c2ba839972de34a8ffb28b6cfb6825e2
Reviewed-on: https://go-review.googlesource.com/48690
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Austin Clements 2017-07-15 10:30:38 -06:00
parent 4ce273956a
commit 7a4327eb7a
1 changed files with 2 additions and 2 deletions

View File

@ -49,9 +49,9 @@ func detectrepo() string {
} }
for _, path := range filepath.SplitList(build.Default.GOPATH) { for _, path := range filepath.SplitList(build.Default.GOPATH) {
rightdir := filepath.Join(path, "src", "golang.org", "x") rightdir := filepath.Join(path, "src", "golang.org", "x") + string(os.PathSeparator)
if strings.HasPrefix(wd, rightdir) { if strings.HasPrefix(wd, rightdir) {
tail := wd[len(rightdir)+1:] tail := wd[len(rightdir):]
end := strings.Index(tail, string(os.PathSeparator)) end := strings.Index(tail, string(os.PathSeparator))
if end > 0 { if end > 0 {
repo := tail[:end] repo := tail[:end]