# HG changeset patch # User Waqas Hussain # Date 1321887578 -18000 # Node ID 1cbf3744300c97858893369db6c293b9b00edf5c # Parent 70b5e533325dbc3c7df84e819625b5c7b8c61846 MUC: Fix a possible stack overflow (when a local component joins a room, then disconnects, an unavailble-error presence cycle can occur). diff -r 70b5e533325d -r 1cbf3744300c plugins/muc/muc.lib.lua --- a/plugins/muc/muc.lib.lua Sat Nov 19 22:40:30 2011 +0000 +++ b/plugins/muc/muc.lib.lua Mon Nov 21 19:59:38 2011 +0500 @@ -358,6 +358,7 @@ elseif type == "unavailable" then -- unavailable if current_nick then log("debug", "%s leaving %s", current_nick, room); + self._jid_nick[from] = nil; local occupant = self._occupants[current_nick]; local new_jid = next(occupant.sessions); if new_jid == from then new_jid = next(occupant.sessions, new_jid); end @@ -382,7 +383,6 @@ self:broadcast_presence(pr, from); self._occupants[current_nick] = nil; end - self._jid_nick[from] = nil; end elseif not type then -- available if current_nick then