diff options
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> | 2018-12-23 15:25:01 +0100 |
---|---|---|
committer | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> | 2018-12-23 15:25:01 +0100 |
commit | 90e7122beaa47db43bd2f42eba648c568bb30417 (patch) | |
tree | f24a830ac1b2309825b1bafc3feb2b2154237398 /plugins/mod_mam/mamprefsxml.lib.lua | |
parent | 63098950d9ca542a610ca1c0a13ef6a31c8366af (diff) | |
download | prosody-90e7122beaa47db43bd2f42eba648c568bb30417.tar.gz prosody-90e7122beaa47db43bd2f42eba648c568bb30417.zip |
mod_mam: Only accept valid JIDs in <always/> and <never/> prefs. (fixes #1275)
Diffstat (limited to 'plugins/mod_mam/mamprefsxml.lib.lua')
-rw-r--r-- | plugins/mod_mam/mamprefsxml.lib.lua | 14 |
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 |