Software /
code /
prosody
Changeset
7405:5a65750d959a
MUC: Be more careful with deserialization of rooms, fix case where a bare jid has joined as multiple participants
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 27 Apr 2016 18:55:49 +0200 |
parents | 7404:57ca4dcd91a7 |
children | 7406:92755ca737c3 |
files | plugins/muc/muc.lib.lua |
diffstat | 1 files changed, 2 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/muc/muc.lib.lua Wed Apr 27 12:05:51 2016 +0200 +++ b/plugins/muc/muc.lib.lua Wed Apr 27 18:55:49 2016 +0200 @@ -1283,10 +1283,10 @@ for jid, data in pairs(frozen) do local node, host, resource = jid_split(jid); if node or host:sub(1,1) ~= "_" then - if not resource then + if not resource and type(data) == "string" then -- bare jid: affiliation room._affiliations[jid] = data; - elseif host == room_host and node == room_name then + elseif host == room_host and node == room_name and resource then -- full room jid: bare real jid and role local bare_jid = data.bare_jid; local occupant = occupant_lib.new(bare_jid, jid);