From 8def827f9cc1242e15af760bdd8419ddd167e3a6 Mon Sep 17 00:00:00 2001 From: Evgeny Khramtsov Date: Tue, 19 Feb 2019 12:31:18 +0300 Subject: Don't crash on malformed 'modules' section --- src/ejabberd_config.erl | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/ejabberd_config.erl') diff --git a/src/ejabberd_config.erl b/src/ejabberd_config.erl index eaf513e77..ed52c728b 100644 --- a/src/ejabberd_config.erl +++ b/src/ejabberd_config.erl @@ -713,10 +713,16 @@ process_term(Term, State) -> process_host_term(Term, Host, State, Action) -> case Term of - {modules, Modules} when Action == set -> - set_option({modules, Host}, replace_modules(Modules), State); - {modules, Modules} when Action == append -> - append_option({modules, Host}, replace_modules(Modules), State); + {modules, Modules} -> + Modules1 = try (gen_mod:opt_type(modules))(Modules) of + _ -> replace_modules(Modules) + catch _:_ -> Modules + end, + if Action == set -> + set_option({modules, Host}, Modules1, State); + Action == append -> + append_option({modules, Host}, Modules1, State) + end; {host, _} -> State; {hosts, _} -> -- cgit v1.2.3