fix(ldap): no crash when no query result is empty list

This commit is contained in:
Zaiming (Stone) Shi 2023-09-29 08:54:41 +02:00
parent b59a7ff2dd
commit 02ef854f0f
1 changed files with 7 additions and 5 deletions

View File

@ -262,10 +262,12 @@ do_ldap_query(
ldap_connector_query_return, ldap_connector_query_return,
#{result => Result} #{result => Result}
), ),
case Result#eldap_search_result.entries of Entries = Result#eldap_search_result.entries,
[_] = Entry -> Count = length(Entries),
{ok, Entry}; case Count =< 1 of
[_ | _] = L -> true ->
{ok, Entries};
false ->
%% Accept only a single exact match. %% Accept only a single exact match.
%% Multiple matches likely indicate: %% Multiple matches likely indicate:
%% 1. A misconfiguration in EMQX, allowing overly broad query conditions. %% 1. A misconfiguration in EMQX, allowing overly broad query conditions.
@ -276,7 +278,7 @@ do_ldap_query(
error, error,
LogMeta#{ LogMeta#{
msg => "ldap_query_found_more_than_one_match", msg => "ldap_query_found_more_than_one_match",
count => length(L) count => length(Entries)
} }
), ),
{error, {unrecoverable_error, Msg}} {error, {unrecoverable_error, Msg}}