From 21e37daa49d233e2ba298cb154f409de1f3f748d Mon Sep 17 00:00:00 2001 From: Marius Nuennerich Date: Tue, 14 Apr 2015 11:30:54 +0100 Subject: [PATCH] io/ioutil: fix locking of the tempfile random state Fixes #10451 Change-Id: I15ed777e9a4a4e1ba1178d07fcbe0ab4bf0d9e50 Reviewed-on: https://go-review.googlesource.com/8936 Reviewed-by: Brad Fitzpatrick --- src/io/ioutil/tempfile.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/io/ioutil/tempfile.go b/src/io/ioutil/tempfile.go index 4a06e9756f..61d4a7ad37 100644 --- a/src/io/ioutil/tempfile.go +++ b/src/io/ioutil/tempfile.go @@ -55,7 +55,9 @@ func TempFile(dir, prefix string) (f *os.File, err error) { f, err = os.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600) if os.IsExist(err) { if nconflict++; nconflict > 10 { + randmu.Lock() rand = reseed() + randmu.Unlock() } continue } @@ -82,7 +84,9 @@ func TempDir(dir, prefix string) (name string, err error) { err = os.Mkdir(try, 0700) if os.IsExist(err) { if nconflict++; nconflict > 10 { + randmu.Lock() rand = reseed() + randmu.Unlock() } continue } -- 2.50.0