From: Richard Miller Date: Wed, 29 Apr 2020 10:20:28 +0000 (+0100) Subject: cmd/go/internal/modload: use lockedfile to read path-replacement go.mod files X-Git-Tag: go1.15beta1~310 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=b13ce66d1b3ce01064fd1912055d71447ab62384;p=gostls13.git cmd/go/internal/modload: use lockedfile to read path-replacement go.mod files When parsing go.mod files found via file-path replacements, it's safer to use lockedfile.Read instead of ioutil.ReadFile, in case of overwriting by other concurrent go commands. Change-Id: I7dcac3bb5ada84bee1eb634b39f813c461ef103a Reviewed-on: https://go-review.googlesource.com/c/go/+/230838 Reviewed-by: Bryan C. Mills Reviewed-by: Jay Conrod Run-TryBot: Bryan C. Mills --- diff --git a/src/cmd/go/internal/modload/mvs.go b/src/cmd/go/internal/modload/mvs.go index 065a533e1f..a4bdf3ee00 100644 --- a/src/cmd/go/internal/modload/mvs.go +++ b/src/cmd/go/internal/modload/mvs.go @@ -7,7 +7,6 @@ package modload import ( "errors" "fmt" - "io/ioutil" "os" "path/filepath" "sort" @@ -15,6 +14,7 @@ import ( "cmd/go/internal/base" "cmd/go/internal/cfg" + "cmd/go/internal/lockedfile" "cmd/go/internal/modfetch" "cmd/go/internal/mvs" "cmd/go/internal/par" @@ -108,7 +108,7 @@ func (r *mvsReqs) required(mod module.Version) ([]module.Version, error) { dir = filepath.Join(ModRoot(), dir) } gomod := filepath.Join(dir, "go.mod") - data, err := ioutil.ReadFile(gomod) + data, err := lockedfile.Read(gomod) if err != nil { return nil, fmt.Errorf("parsing %s: %v", base.ShortPath(gomod), err) }