aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmmanuel Gil Peyrot <linkmauve@linkmauve.fr>2018-12-23 15:25:01 +0100
committerEmmanuel Gil Peyrot <linkmauve@linkmauve.fr>2018-12-23 15:25:01 +0100
commit90e7122beaa47db43bd2f42eba648c568bb30417 (patch)
treef24a830ac1b2309825b1bafc3feb2b2154237398
parent63098950d9ca542a610ca1c0a13ef6a31c8366af (diff)
downloadprosody-90e7122beaa47db43bd2f42eba648c568bb30417.tar.gz
prosody-90e7122beaa47db43bd2f42eba648c568bb30417.zip
mod_mam: Only accept valid JIDs in <always/> and <never/> prefs. (fixes #1275)
-rw-r--r--plugins/mod_mam/mamprefsxml.lib.lua14
1 files changed, 10 insertions, 4 deletions
diff --git a/plugins/mod_mam/mamprefsxml.lib.lua b/plugins/mod_mam/mamprefsxml.lib.lua
index 8eee78d8..c408fbea 100644
--- a/plugins/mod_mam/mamprefsxml.lib.lua
+++ b/plugins/mod_mam/mamprefsxml.lib.lua
@@ -2,6 +2,7 @@
-- Copyright (C) 2008-2017 Matthew Wild
-- Copyright (C) 2008-2017 Waqas Hussain
-- Copyright (C) 2011-2017 Kim Alvefur
+-- Copyright (C) 2018 Emmanuel Gil Peyrot
--
-- This project is MIT/X11 licensed. Please see the
-- COPYING file in the source package for more information.
@@ -10,6 +11,7 @@
--
local st = require"util.stanza";
+local jid_prep = require"util.jid".prep;
local xmlns_mam = "urn:xmpp:mam:2";
local default_attrs = {
@@ -42,16 +44,20 @@ local function fromstanza(prefstanza)
local always = prefstanza:get_child("always");
if always then
for rule in always:childtags("jid") do
- local jid = rule:get_text();
- prefs[jid] = true;
+ local jid = jid_prep(rule:get_text());
+ if jid then
+ prefs[jid] = true;
+ end
end
end
local never = prefstanza:get_child("never");
if never then
for rule in never:childtags("jid") do
- local jid = rule:get_text();
- prefs[jid] = false;
+ local jid = jid_prep(rule:get_text());
+ if jid then
+ prefs[jid] = false;
+ end
end
end