From 8c4a6e7e6f29f839df4568d89c7ce7488eb77367 Mon Sep 17 00:00:00 2001 From: gavwu Date: Thu, 10 Dec 2020 23:35:15 +0800 Subject: [PATCH 1/2] fix GetAll() potentially return an unprotected map --- pkg/cover/store.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/cover/store.go b/pkg/cover/store.go index 40861ca..7d68bf3 100644 --- a/pkg/cover/store.go +++ b/pkg/cover/store.go @@ -264,9 +264,13 @@ func (l *memoryStore) Get(name string) []string { // Get returns all the registered service information func (l *memoryStore) GetAll() map[string][]string { + res := make(map[string][]string) l.mu.RLock() defer l.mu.RUnlock() - return l.servicesMap + for k,v := range l.servicesMap { + res[k] = append(make([]string,0,len(v)), v...) + } + return res } // Init cleanup all the registered service information From 237bdb3af9383a6bdfdbdab70fb328e9481fca8a Mon Sep 17 00:00:00 2001 From: gavwu Date: Sun, 13 Dec 2020 14:29:40 +0800 Subject: [PATCH 2/2] go fmt --- pkg/cover/store.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/cover/store.go b/pkg/cover/store.go index 7d68bf3..0929039 100644 --- a/pkg/cover/store.go +++ b/pkg/cover/store.go @@ -267,8 +267,8 @@ func (l *memoryStore) GetAll() map[string][]string { res := make(map[string][]string) l.mu.RLock() defer l.mu.RUnlock() - for k,v := range l.servicesMap { - res[k] = append(make([]string,0,len(v)), v...) + for k, v := range l.servicesMap { + res[k] = append(make([]string, 0, len(v)), v...) } return res }