From 6da48e31b5d37e08dbee6a7c9a243a8d92a5691e Mon Sep 17 00:00:00 2001 From: Joachim Bauch Date: Thu, 15 Jun 2023 11:22:26 +0200 Subject: [PATCH] Add missing lock for "roomSessionId" to avoid potential races. --- clientsession.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/clientsession.go b/clientsession.go index 1b67ab1..9bb816e 100644 --- a/clientsession.go +++ b/clientsession.go @@ -150,6 +150,8 @@ func (s *ClientSession) PublicId() string { } func (s *ClientSession) RoomSessionId() string { + s.mu.Lock() + defer s.mu.Unlock() return s.roomSessionId } @@ -1022,10 +1024,7 @@ func (s *ClientSession) processAsyncMessage(message *AsyncMessage) { return case "message": if message.Message.Type == "bye" && message.Message.Bye.Reason == "room_session_reconnected" { - s.mu.Lock() - roomSessionId := s.RoomSessionId() - s.mu.Unlock() - log.Printf("Closing session %s because same room session %s connected", s.PublicId(), roomSessionId) + log.Printf("Closing session %s because same room session %s connected", s.PublicId(), s.RoomSessionId()) s.LeaveRoom(false) defer s.closeAndWait(false) }