From 5443b8ff618443484cd75cc5ea1a3a8cc4af38c9 Mon Sep 17 00:00:00 2001 From: Joshua Rogers Date: Tue, 9 Sep 2025 05:29:34 +0000 Subject: [PATCH] ext_ldap_group_acl: avoid infinite loop on login containing '%s' (#2217) --- src/acl/external/LDAP_group/ext_ldap_group_acl.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/acl/external/LDAP_group/ext_ldap_group_acl.cc b/src/acl/external/LDAP_group/ext_ldap_group_acl.cc index 997bd7aa6a..69ba3e3eba 100644 --- a/src/acl/external/LDAP_group/ext_ldap_group_acl.cc +++ b/src/acl/external/LDAP_group/ext_ldap_group_acl.cc @@ -747,10 +747,10 @@ searchLDAPGroup(LDAP * ld, const char *group, const char *member, const char *ex static void formatWithString(std::string &formatted, const std::string &value) { - size_t start_pos = 0; + std::string::size_type start_pos = 0; while ((start_pos = formatted.find("%s", start_pos)) != std::string::npos) { formatted.replace(start_pos, 2, value); - start_pos += 2; + start_pos += value.length(); } } -- 2.47.3