From 4fc26f127e9cc6a9a0ee6f9bfeb6a7afb8a8285e Mon Sep 17 00:00:00 2001 From: nxshock Date: Thu, 8 Aug 2019 20:02:46 +0500 Subject: [PATCH] Fix SetTopic mutex infinity lock --- internal/backends/memory/user.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/backends/memory/user.go b/internal/backends/memory/user.go index bb6415e..eb2fd25 100644 --- a/internal/backends/memory/user.go +++ b/internal/backends/memory/user.go @@ -114,14 +114,16 @@ func (user *User) SetTopic(room internal.Room, topic string) models.ApiError { memRoom := room.(*Room) memRoom.mutex.Lock() - defer memRoom.mutex.Unlock() if memRoom.creator.ID() != user.ID() { // TODO: currently only creator can change topic + memRoom.mutex.Unlock() return models.NewError(models.M_FORBIDDEN, "") } memRoom.topic = topic + memRoom.mutex.Unlock() + rEvent := &RoomEvent{ Type: rooms.Topic, Sender: user,