mod_storage_xep0227: treat roster metadata pseudo-entry correctly
authorJonas Schäfer <jonas@wielicki.name>
Sat, 15 Jan 2022 15:40:29 +0100
changeset 12193 82c8e855c850
parent 12192 0fee75871f78
child 12194 3616128cd2e3
mod_storage_xep0227: treat roster metadata pseudo-entry correctly The roster version is stored in a pseudo-item which has the key `false`. The if condition in the touched code attempts to guard against this, but it does not take into account that the jid prepping returns nil instead of false. By moving the jid prepping into the if, we can check for the metadata entry safely.
plugins/mod_storage_xep0227.lua
--- a/plugins/mod_storage_xep0227.lua	Sat Jan 15 15:39:13 2022 +0100
+++ b/plugins/mod_storage_xep0227.lua	Sat Jan 15 15:40:29 2022 +0100
@@ -250,8 +250,8 @@
 				local roster = st.stanza("query", {xmlns='jabber:iq:roster'});
 				usere:add_child(roster);
 				for contact_jid, item in pairs(data) do
-					contact_jid = jid_bare(jid_prep(contact_jid));
 					if contact_jid ~= false then
+						contact_jid = jid_bare(jid_prep(contact_jid));
 						if contact_jid ~= user_jid then -- Skip self-contacts
 							roster:tag("item", {
 								jid = contact_jid,