Software /
code /
prosody
Diff
plugins/muc/muc.lib.lua @ 4424:1cbf3744300c
MUC: Fix a possible stack overflow (when a local component joins a room, then disconnects, an unavailble-error presence cycle can occur).
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Mon, 21 Nov 2011 19:59:38 +0500 |
parent | 4357:d6928b78c548 |
child | 4528:875b90d5ce0f |
line wrap: on
line diff
--- 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