]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: add missing fs locking in Link, Rename on nacl
authorTim Wright <tenortim@gmail.com>
Wed, 22 Nov 2017 03:11:56 +0000 (19:11 -0800)
committerBrad Fitzpatrick <bradfitz@golang.org>
Wed, 22 Nov 2017 03:47:23 +0000 (03:47 +0000)
Per the comments at the head of fs_nacl.go, unexported methods expect
the fs mutex to have been taken by the caller.
This change brings Link and Rename into line with the other exported
functions wrt fs locking.

Fixes #22690

Change-Id: I46d08f7d227f23ff49bb0099d218214364a45e1a
Reviewed-on: https://go-review.googlesource.com/79295
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/syscall/fs_nacl.go

index 8fee4daee92ac530cf5a5f35c19ac1b73a9aa2c2..33334dc24b694bed7fc836c24996f5bac121892d 100644 (file)
@@ -625,6 +625,8 @@ func UtimesNano(path string, ts []Timespec) error {
 
 func Link(path, link string) error {
        fsinit()
+       fs.mu.Lock()
+       defer fs.mu.Unlock()
        ip, _, err := fs.namei(path, false)
        if err != nil {
                return err
@@ -646,6 +648,8 @@ func Link(path, link string) error {
 
 func Rename(from, to string) error {
        fsinit()
+       fs.mu.Lock()
+       defer fs.mu.Unlock()
        fdp, felem, err := fs.namei(from, true)
        if err != nil {
                return err