From caf07692dbdabcd2e083530b18ee7a4eda90ea9b Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Sun, 5 Sep 2021 13:24:51 +0200 Subject: [PATCH] mod_register_web: Handle unknown host gracefully MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Return a proper error message on registration attempts against unknown hosts, rather than crashing. Thanks to Ingo Jürgensmann for reporting the bug. --- src/mod_register_web.erl | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/mod_register_web.erl b/src/mod_register_web.erl index 28bac0558..0e216c81c 100644 --- a/src/mod_register_web.erl +++ b/src/mod_register_web.erl @@ -507,14 +507,18 @@ form_del_get(Host, Lang) -> %% {error, not_allowed} | %% {error, invalid_jid} register_account(Username, Host, Password) -> - Access = mod_register_opt:access(Host), - case jid:make(Username, Host) of - error -> {error, invalid_jid}; - JID -> - case acl:match_rule(Host, Access, JID) of - deny -> {error, not_allowed}; - allow -> register_account2(Username, Host, Password) - end + try mod_register_opt:access(Host) of + Access -> + case jid:make(Username, Host) of + error -> {error, invalid_jid}; + JID -> + case acl:match_rule(Host, Access, JID) of + deny -> {error, not_allowed}; + allow -> register_account2(Username, Host, Password) + end + end + catch _:{module_not_loaded, mod_register, _Host} -> + {error, host_unknown} end. register_account2(Username, Host, Password) -> @@ -577,6 +581,8 @@ get_error_text({error, password_incorrect}) -> ?T("Incorrect password"); get_error_text({error, invalid_jid}) -> ?T("The username is not valid"); +get_error_text({error, host_unknown}) -> + ?T("Host unknown"); get_error_text({error, not_allowed}) -> ?T("Not allowed"); get_error_text({error, account_doesnt_exist}) ->