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);