From 0c09599d7bc2d9a2ec06da04dc641a8250f56beb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Tue, 8 Dec 2020 09:19:05 +0100 Subject: Normalize names passed to destroy_room --- src/mod_muc_admin.erl | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'src/mod_muc_admin.erl') diff --git a/src/mod_muc_admin.erl b/src/mod_muc_admin.erl index d843e0db4..4ee74ad33 100644 --- a/src/mod_muc_admin.erl +++ b/src/mod_muc_admin.erl @@ -710,15 +710,22 @@ muc_create_room(ServerHost, {Name, Host, _}, DefRoomOpts) -> %% @doc Destroy the room immediately. %% If the room has participants, they are not notified that the room was destroyed; %% they will notice when they try to chat and receive an error that the room doesn't exist. -destroy_room(Name, Service) -> - case get_room_pid(Name, Service) of - room_not_found -> - throw({error, "Room doesn't exists"}); - invalid_service -> +destroy_room(Name1, Service1) -> + case {jid:nodeprep(Name1), jid:nodeprep(Service1)} of + {error, _} -> + throw({error, "Invalid 'name'"}); + {_, error} -> throw({error, "Invalid 'service'"}); - Pid -> - mod_muc_room:destroy(Pid), - ok + {Name, Service} -> + case get_room_pid(Name, Service) of + room_not_found -> + throw({error, "Room doesn't exists"}); + invalid_service -> + throw({error, "Invalid 'service'"}); + Pid -> + mod_muc_room:destroy(Pid), + ok + end end. destroy_room({N, H, SH}) -> -- cgit v1.2.3