diff options
| author | Bl1tz23 <alex3angle@gmail.com> | 2021-11-09 12:19:50 +0300 |
|---|---|---|
| committer | Bl1tz23 <alex3angle@gmail.com> | 2021-11-09 12:19:50 +0300 |
| commit | 5018b22f368731ca5791c73790c63e0e0a3579c7 (patch) | |
| tree | b1b7ffa7ac67da9295b1dc06b7396b84683fa630 | |
| parent | 59d1435d652812a8505e8924ebafc7ccab437cb5 (diff) | |
| download | seaweedfs-5018b22f368731ca5791c73790c63e0e0a3579c7.tar.xz seaweedfs-5018b22f368731ca5791c73790c63e0e0a3579c7.zip | |
s3: fix potencial iam identities data race
| -rw-r--r-- | weed/s3api/auth_credentials.go | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/weed/s3api/auth_credentials.go b/weed/s3api/auth_credentials.go index 78b82589e..8d05f2a03 100644 --- a/weed/s3api/auth_credentials.go +++ b/weed/s3api/auth_credentials.go @@ -5,6 +5,7 @@ import ( "net/http" "os" "strings" + "sync" "github.com/chrislusf/seaweedfs/weed/filer" "github.com/chrislusf/seaweedfs/weed/glog" @@ -23,6 +24,8 @@ type Iam interface { } type IdentityAccessManagement struct { + m sync.Mutex + identities []*Identity domain string } @@ -131,9 +134,12 @@ func (iam *IdentityAccessManagement) loadS3ApiConfiguration(config *iam_pb.S3Api } identities = append(identities, t) } - + iam.m.Lock() + // atomically switch iam.identities = identities + + iam.m.Unlock() return nil } |
