From 8b60131e92e2745e154133989791bdd51a5b1c12 Mon Sep 17 00:00:00 2001 From: Neil Twigg Date: Tue, 19 Sep 2023 18:52:34 +0100 Subject: [PATCH 1/2] Fix race condition in `clientHasMovedToDifferentAccount` Signed-off-by: Neil Twigg --- server/reload.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/reload.go b/server/reload.go index a098da7a..be1061ae 100644 --- a/server/reload.go +++ b/server/reload.go @@ -2009,6 +2009,8 @@ func (s *Server) clientHasMovedToDifferentAccount(c *client) bool { nu *NkeyUser u *User ) + c.mu.Lock() + defer c.mu.Unlock() if c.opts.Nkey != "" { if s.nkeys != nil { nu = s.nkeys[c.opts.Nkey] @@ -2021,12 +2023,10 @@ func (s *Server) clientHasMovedToDifferentAccount(c *client) bool { return false } // Get the current account name - c.mu.Lock() var curAccName string if c.acc != nil { curAccName = c.acc.Name } - c.mu.Unlock() if nu != nil && nu.Account != nil { return curAccName != nu.Account.Name } else if u != nil && u.Account != nil { From 01872d2aa86600eaa386b959ff67fac5813d68e6 Mon Sep 17 00:00:00 2001 From: Neil Twigg Date: Tue, 19 Sep 2023 19:07:17 +0100 Subject: [PATCH 2/2] Fix empty string constants Signed-off-by: Neil Twigg --- server/reload.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/reload.go b/server/reload.go index be1061ae..ec22911b 100644 --- a/server/reload.go +++ b/server/reload.go @@ -2011,11 +2011,11 @@ func (s *Server) clientHasMovedToDifferentAccount(c *client) bool { ) c.mu.Lock() defer c.mu.Unlock() - if c.opts.Nkey != "" { + if c.opts.Nkey != _EMPTY_ { if s.nkeys != nil { nu = s.nkeys[c.opts.Nkey] } - } else if c.opts.Username != "" { + } else if c.opts.Username != _EMPTY_ { if s.users != nil { u = s.users[c.opts.Username] }