mirror of
https://github.com/processone/ejabberd.git
synced 2024-06-02 21:17:12 +02:00
Fix validation of user field in get_user_subscriptions command
I made it test for valid muc room, instead of just valid username. This should fix issue #4197
This commit is contained in:
parent
426e33d3a6
commit
61ad808d26
|
@ -564,7 +564,7 @@ get_user_rooms(User, Server) ->
|
||||||
end, ejabberd_option:hosts()).
|
end, ejabberd_option:hosts()).
|
||||||
|
|
||||||
get_user_subscriptions(User, Server) ->
|
get_user_subscriptions(User, Server) ->
|
||||||
User2 = validate_muc(User, <<"user">>),
|
User2 = validate_user(User, <<"user">>),
|
||||||
Server2 = validate_host(Server, <<"host">>),
|
Server2 = validate_host(Server, <<"host">>),
|
||||||
Services = find_services(global),
|
Services = find_services(global),
|
||||||
UserJid = jid:make(User2, Server2),
|
UserJid = jid:make(User2, Server2),
|
||||||
|
@ -1582,6 +1582,15 @@ validate_host(Name, ArgName) ->
|
||||||
end
|
end
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
-spec validate_user(Name :: binary(), ArgName::binary()) -> binary().
|
||||||
|
validate_user(Name, ArgName) ->
|
||||||
|
case jid:nodeprep(Name) of
|
||||||
|
error ->
|
||||||
|
throw({error, <<"Invalid value of '",ArgName/binary,"'">>});
|
||||||
|
Name2 ->
|
||||||
|
Name2
|
||||||
|
end.
|
||||||
|
|
||||||
-spec validate_muc(Name :: binary(), ArgName::binary()) -> binary().
|
-spec validate_muc(Name :: binary(), ArgName::binary()) -> binary().
|
||||||
validate_muc(Name, ArgName) ->
|
validate_muc(Name, ArgName) ->
|
||||||
case jid:nameprep(Name) of
|
case jid:nameprep(Name) of
|
||||||
|
|
Loading…
Reference in New Issue
Block a user