瀏覽代碼

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

Zaiming (Stone) Shi 2 年之前
父節點
當前提交
02ef854f0f
共有 1 個文件被更改,包括 7 次插入5 次删除
  1. 7 5
      apps/emqx_ldap/src/emqx_ldap.erl

+ 7 - 5
apps/emqx_ldap/src/emqx_ldap.erl

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