From 371861ec59e4eeba19efa6d064fba95d68ef4ac3 Mon Sep 17 00:00:00 2001 From: Matthias Hanel Date: Thu, 24 Sep 2020 18:57:21 -0400 Subject: [PATCH] Holding lock when accessing leaf node account for filtering Signed-off-by: Matthias Hanel --- server/monitor.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/server/monitor.go b/server/monitor.go index 77fb2c59..fd67ad77 100644 --- a/server/monitor.go +++ b/server/monitor.go @@ -1765,8 +1765,13 @@ func (s *Server) Leafz(opts *LeafzOptions) (*Leafz, error) { if len(s.leafs) > 0 { lconns = make([]*client, 0, len(s.leafs)) for _, ln := range s.leafs { - if opts != nil && opts.Account != "" && ln.acc.Name != opts.Account { - continue + if opts != nil && opts.Account != "" { + ln.mu.Lock() + ok := ln.acc.Name == opts.Account + ln.mu.Unlock() + if !ok { + continue + } } lconns = append(lconns, ln) }