From 9bcd4328d2d52517bc3c9fb20642eb9b8c873f09 Mon Sep 17 00:00:00 2001 From: Luke Bakken Date: Wed, 26 Mar 2025 11:43:56 -0700 Subject: [PATCH] Use case-insensitive `lists:member` References: * [`RMQ-1585`](https://vmw-jira.broadcom.net/browse/RMQ-1585) * https://github.com/lukebakken/rmq-1585 --- .../src/rabbit_auth_backend_ldap.erl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl b/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl index 9ec98948fd..0b8f3eb591 100644 --- a/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl +++ b/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl @@ -385,14 +385,20 @@ search_groups(LDAP, Desc, GroupsBase, Scope, DN) -> end. search_nested_group(LDAP, Desc, GroupsBase, Scope, CurrentDN, TargetDN, Path) -> - case lists:member(CurrentDN, Path) of + Pred0 = fun(S) -> + string:equal(CurrentDN, S, true) + end, + case lists:any(Pred0, Path) of true -> ?L("recursive cycle on DN ~ts while searching for group ~ts", [CurrentDN, TargetDN]), false; false -> GroupDNs = search_groups(LDAP, Desc, GroupsBase, Scope, CurrentDN), - case lists:member(TargetDN, GroupDNs) of + Pred1 = fun(S) -> + string:equal(TargetDN, S, true) + end, + case lists:any(Pred1, GroupDNs) of true -> true; false ->