From: Alexander Bokovoy Date: Sat, 10 Dec 2022 11:50:27 +0000 (+0000) Subject: ext_kerberos_ldap_group_acl: Support -b with -D (#1207) X-Git-Tag: SQUID_5_8~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=edad3f150de8af0aeb2f629508be3219b83369b9;p=thirdparty%2Fsquid.git ext_kerberos_ldap_group_acl: Support -b with -D (#1207) When both '-b' (i.e. bind DN) and '-D' (i.e. Kerberos domain) options are specified, '-b' is ignored completely. This breaks the helper when a search subtree has to be limited (e.g., when using FreeIPA). Fix it to take '-b' into account if it was specified with '-D'. --- diff --git a/src/acl/external/kerberos_ldap_group/support_ldap.cc b/src/acl/external/kerberos_ldap_group/support_ldap.cc index 3608148a38..c713215a85 100644 --- a/src/acl/external/kerberos_ldap_group/support_ldap.cc +++ b/src/acl/external/kerberos_ldap_group/support_ldap.cc @@ -1114,7 +1114,11 @@ get_memberof(struct main_args *margs, char *user, char *domain, char *group) "%s| %s: DEBUG: Error during initialisation of ldap connection: %s\n", LogTime(), PROGRAM, strerror(errno)); } - bindp = convert_domain_to_bind_path(domain); + if (margs->lbind) { + bindp = xstrdup(margs->lbind); + } else { + bindp = convert_domain_to_bind_path(domain); + } } if ((!domain || !ld) && margs->lurl && strstr(margs->lurl, "://")) { char *hostname;