if (!dn || !*dn) {
return RLM_MODULE_OK;
}
- strlcpy(filter, inst->profile_filter, sizeof(filter));
+
+ if (radius_xlat(filter, sizeof(filter), request, inst->profile_filter, rlm_ldap_escape_func, NULL) < 0) {
+ REDEBUG("Failed creating profile filter");
+
+ return RLM_MODULE_INVALID;
+ }
status = rlm_ldap_search(inst, request, pconn, dn, LDAP_SCOPE_BASE, filter, expanded->attrs, &result);
switch (status) {
/*
* Apply ONE user profile, or a default user profile.
*/
- vp = pairfind(request->config_items, PW_USER_PROFILE, 0, TAG_ANY);
- if (vp || inst->default_profile) {
- char const *profile = vp ? vp->vp_strvalue : inst->default_profile;
+ if (inst->default_profile) {
+ char profile[1024];
+
+ if (radius_xlat(profile, sizeof(profile), request, inst->default_profile, NULL, NULL) < 0) {
+ REDEBUG("Failed creating default profile string");
+
+ rcode = RLM_MODULE_INVALID;
+ goto finish;
+ }
rlm_ldap_map_profile(inst, request, &conn, profile, &expanded);
}