aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go/internal/modfetch/fetch.go
diff options
context:
space:
mode:
authorBurtonQin <bobbqqin@gmail.com>2020-04-21 11:37:41 +0000
committerJay Conrod <jayconrod@google.com>2020-04-21 15:37:29 +0000
commit4f27e1d7aadba639cceaa93f77ec0c7ee3fee01b (patch)
treec60ce02dfab9a58d3b22e3cac24dee105cd0b8ec /src/cmd/go/internal/modfetch/fetch.go
parentaf55060b39d2f6f39711abc95a23bd8f47968e8e (diff)
downloadgo-4f27e1d7aadba639cceaa93f77ec0c7ee3fee01b.tar.gz
go-4f27e1d7aadba639cceaa93f77ec0c7ee3fee01b.zip
cmd/go/internal/modfetch: add Unlock before return in checkModSum
In cmd/go/internal/modfetch/fetch.go, `checkModSum()` forgets Unlock before return, which may lead to deadlock. https://github.com/golang/go/blob/876c1feb7d5e10a6ff831de9db19b9ff0ea92fa8/src/cmd/go/internal/modfetch/fetch.go#L514-L520 The fix is to add `goSum.mu.Unlock()` before return. Change-Id: I855b1c1bc00aeada2c1e84aabb5328f02823007d GitHub-Last-Rev: afeb3763dd1d08c4c15c4c4183fd5705da60dc4c GitHub-Pull-Request: golang/go#38563 Reviewed-on: https://go-review.googlesource.com/c/go/+/229219 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jay Conrod <jayconrod@google.com>
Diffstat (limited to 'src/cmd/go/internal/modfetch/fetch.go')
-rw-r--r--src/cmd/go/internal/modfetch/fetch.go1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/cmd/go/internal/modfetch/fetch.go b/src/cmd/go/internal/modfetch/fetch.go
index 61759c0e6b..fd7a5cef83 100644
--- a/src/cmd/go/internal/modfetch/fetch.go
+++ b/src/cmd/go/internal/modfetch/fetch.go
@@ -514,6 +514,7 @@ func checkModSum(mod module.Version, h string) error {
goSum.mu.Lock()
inited, err := initGoSum()
if err != nil {
+ goSum.mu.Unlock()
return err
}
done := inited && haveModSumLocked(mod, h)