From: Alan T. DeKok Date: Mon, 28 Apr 2025 19:51:35 +0000 (-0400) Subject: resolve tmpls before returning them to LDAP X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=81e0a8b272c01a8df60f1a295e103c22f734fc47;p=thirdparty%2Ffreeradius-server.git resolve tmpls before returning them to LDAP --- diff --git a/src/lib/ldap/map.c b/src/lib/ldap/map.c index 956b436c0f2..2d94ed0d5cc 100644 --- a/src/lib/ldap/map.c +++ b/src/lib/ldap/map.c @@ -224,13 +224,20 @@ int fr_ldap_map_verify(map_t *map, UNUSED void *instance) case TMPL_TYPE_XLAT_UNRESOLVED: case TMPL_TYPE_ATTR: case TMPL_TYPE_EXEC: - case TMPL_TYPE_DATA_UNRESOLVED: + case TMPL_TYPE_DATA: break; case TMPL_TYPE_ATTR_UNRESOLVED: cf_log_err(map->ci, "Unknown attribute %s", tmpl_attr_tail_unresolved(map->rhs)); return -1; + case TMPL_TYPE_DATA_UNRESOLVED: + if (tmpl_resolve(map->rhs, NULL) < 0) { + cf_log_err(map->ci, "Invalid data %s", map->rhs->name); + return -1; + } + break; + default: cf_log_err(map->ci, "Right hand side of map must be an xlat, attribute, exec, or literal, not a %s", tmpl_type_to_str(map->rhs->type));