From: Alan T. DeKok Date: Sun, 3 Aug 2025 15:18:01 +0000 (-0400) Subject: use FR_SBUFF_IN_STR() for common cases X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d6eb6f7922dc90aff7726f64262e6661c588a363;p=thirdparty%2Ffreeradius-server.git use FR_SBUFF_IN_STR() for common cases --- diff --git a/src/bin/radiusd.c b/src/bin/radiusd.c index 5846d5e5e6..bfa5144f40 100644 --- a/src/bin/radiusd.c +++ b/src/bin/radiusd.c @@ -285,7 +285,7 @@ int main(int argc, char *argv[]) */ env = getenv("FR_GLOBAL_POOL"); if (env) { - if (fr_size_from_str(&pool_size, &FR_SBUFF_IN(env, strlen(env))) < 0) { + if (fr_size_from_str(&pool_size, &FR_SBUFF_IN_STR(env)) < 0) { fr_perror("%s: Invalid pool size string \"%s\"", program, env); EXIT_WITH_FAILURE; } diff --git a/src/bin/radsniff.c b/src/bin/radsniff.c index fbe7328202..b635c22822 100644 --- a/src/bin/radsniff.c +++ b/src/bin/radsniff.c @@ -2109,7 +2109,7 @@ static int rs_build_filter(fr_pair_list_t *out, char const *filter) }; relative = (fr_pair_parse_t) { }; - if (fr_pair_list_afrom_substr(&root, &relative, &FR_SBUFF_IN(filter, strlen(filter))) <= 0) { + if (fr_pair_list_afrom_substr(&root, &relative, &FR_SBUFF_IN_STR(filter)) <= 0) { fr_perror("Invalid RADIUS filter \"%s\"", filter); return -1; } diff --git a/src/lib/kafka/base.c b/src/lib/kafka/base.c index 493b74b287..b72898d996 100644 --- a/src/lib/kafka/base.c +++ b/src/lib/kafka/base.c @@ -165,7 +165,7 @@ static int kafka_config_dflt_single(CONF_PAIR **out, UNUSED void *parent, CONF_S fr_sbuff_t value_elem = FR_SBUFF_IN(tmp, sizeof(tmp)); size_t size; - if (fr_size_from_str(&size, &FR_SBUFF_IN(value, strlen(value))) < 0) { + if (fr_size_from_str(&size, &FR_SBUFF_IN_STR(value)) < 0) { cf_log_perr(cs, "Failed parsing default \"%s\"", value); return -1; } diff --git a/src/lib/ldap/util.c b/src/lib/ldap/util.c index 5306853610..6f05a057d1 100644 --- a/src/lib/ldap/util.c +++ b/src/lib/ldap/util.c @@ -607,7 +607,7 @@ int fr_ldap_filter_to_tmpl(TALLOC_CTX *ctx, tmpl_rules_t const *t_rules, char co in = buffer; } - len = tmpl_afrom_substr(ctx, &parsed, &FR_SBUFF_IN(in, strlen(in)), T_DOUBLE_QUOTED_STRING, NULL, t_rules); + len = tmpl_afrom_substr(ctx, &parsed, &FR_SBUFF_IN_STR(in), T_DOUBLE_QUOTED_STRING, NULL, t_rules); talloc_free(buffer); diff --git a/src/lib/server/map.c b/src/lib/server/map.c index 99de043e40..cd01bd0a77 100644 --- a/src/lib/server/map.c +++ b/src/lib/server/map.c @@ -877,7 +877,7 @@ static int _map_afrom_cs(TALLOC_CTX *ctx, map_list_t *out, map_t *parent, CONF_S MEM(tmp_ctx = talloc_init_const("tmp")); slen = tmpl_request_ref_list_afrom_substr(ctx, NULL, &our_lhs_rules.attr.request_def, - &FR_SBUFF_IN(p, strlen(p))); + &FR_SBUFF_IN_STR(p)); if (slen < 0) { cf_log_err(ci, "Invalid reference - %s", fr_strerror()); talloc_free(tmp_ctx); @@ -885,7 +885,7 @@ static int _map_afrom_cs(TALLOC_CTX *ctx, map_list_t *out, map_t *parent, CONF_S } p += slen; - slen = tmpl_attr_list_from_substr(&our_lhs_rules.attr.list_def, &FR_SBUFF_IN(p, strlen(p))); + slen = tmpl_attr_list_from_substr(&our_lhs_rules.attr.list_def, &FR_SBUFF_IN_STR(p)); if (slen == 0) { cf_log_err(ci, "Unknown list reference \"%s\"", p); talloc_free(tmp_ctx); @@ -1386,7 +1386,7 @@ int map_afrom_value_box(TALLOC_CTX *ctx, map_t **out, map = map_alloc(ctx, NULL); slen = tmpl_afrom_substr(map, &map->lhs, - &FR_SBUFF_IN(lhs, strlen(lhs)), + &FR_SBUFF_IN_STR(lhs), lhs_quote, NULL, lhs_rules); @@ -2623,7 +2623,7 @@ int map_afrom_fields(TALLOC_CTX *ctx, map_t **out, map_t **parent_p, request_t * fr_assert(tmpl_is_attr(parent->lhs)); my_rules.attr.namespace = tmpl_attr_tail_da(parent->lhs); - slen = tmpl_afrom_attr_substr(map, NULL, &map->lhs, &FR_SBUFF_IN(lhs, strlen(lhs)), + slen = tmpl_afrom_attr_substr(map, NULL, &map->lhs, &FR_SBUFF_IN_STR(lhs), &map_parse_rules_bareword_quoted, lhs_rules); } else { /* @@ -2782,7 +2782,7 @@ int map_afrom_fields(TALLOC_CTX *ctx, map_t **out, map_t **parent_p, request_t * /* * Parse it as the given data type. */ - slen = tmpl_afrom_substr(map, &map->rhs, &FR_SBUFF_IN(rhs, strlen(rhs)), + slen = tmpl_afrom_substr(map, &map->rhs, &FR_SBUFF_IN_STR(rhs), T_BARE_WORD, value_parse_rules_unquoted[T_BARE_WORD], &my_rules); if (slen <= 0) { goto parse_as_attr; diff --git a/src/lib/server/tmpl_dcursor_tests.c b/src/lib/server/tmpl_dcursor_tests.c index 6571a42102..8e33594e96 100644 --- a/src/lib/server/tmpl_dcursor_tests.c +++ b/src/lib/server/tmpl_dcursor_tests.c @@ -130,7 +130,7 @@ typedef struct { static inline CC_HINT(always_inline) int _tmpl_setup_and_cursor_init(fr_pair_t **vp_out, tmpl_dcursor_vars_t *vars, request_t *request, char const *ref) { - tmpl_afrom_attr_substr(autofree, NULL, &vars->vpt, &FR_SBUFF_IN(ref, strlen(ref)), NULL, &(tmpl_rules_t){ + tmpl_afrom_attr_substr(autofree, NULL, &vars->vpt, &FR_SBUFF_IN_STR(ref), NULL, &(tmpl_rules_t){ .attr = { .dict_def = test_dict, .list_def = request_attr_request, @@ -159,7 +159,7 @@ int _tmpl_setup_and_cursor_init(fr_pair_t **vp_out, tmpl_dcursor_vars_t *vars, r static inline CC_HINT(always_inline) int _tmpl_setup_and_cursor_build_init(fr_pair_t **vp_out, tmpl_dcursor_vars_t *vars, request_t *request, char const *ref) { - tmpl_afrom_attr_substr(autofree, NULL, &vars->vpt, &FR_SBUFF_IN(ref, strlen(ref)), NULL, &(tmpl_rules_t){ + tmpl_afrom_attr_substr(autofree, NULL, &vars->vpt, &FR_SBUFF_IN_STR(ref), NULL, &(tmpl_rules_t){ .attr = { .dict_def = test_dict, .list_def = request_attr_request, diff --git a/src/lib/unlang/compile.c b/src/lib/unlang/compile.c index d1b6968186..a81ed2e920 100644 --- a/src/lib/unlang/compile.c +++ b/src/lib/unlang/compile.c @@ -1802,7 +1802,7 @@ static unlang_t *compile_module(unlang_t *parent, unlang_compile_ctx_t *unlang_c slen = module_rlm_by_name_and_method(m, &m->mmc, unlang_ctx->vs, &(section_name_t){ .name1 = unlang_ctx->section_name1, .name2 = unlang_ctx->section_name2 }, - &FR_SBUFF_IN(name, strlen(name)), + &FR_SBUFF_IN_STR(name), unlang_ctx->rules); if (slen < 0) { cf_log_perr(ci, "Failed compiling module call"); diff --git a/src/lib/unlang/condition.c b/src/lib/unlang/condition.c index 6219be2e11..bf6b048af3 100644 --- a/src/lib/unlang/condition.c +++ b/src/lib/unlang/condition.c @@ -173,7 +173,7 @@ static unlang_t *compile_if_subsection(unlang_t *parent, unlang_compile_ctx_t *u p_rules.terminals = &if_terminals; - slen = xlat_tokenize_condition(cs, &head, &FR_SBUFF_IN(name2, strlen(name2)), &p_rules, &t_rules); + slen = xlat_tokenize_condition(cs, &head, &FR_SBUFF_IN_STR(name2), &p_rules, &t_rules); if (slen == 0) { cf_canonicalize_error(cs, slen, "Empty conditions are invalid", name2); return NULL; diff --git a/src/lib/unlang/foreach.c b/src/lib/unlang/foreach.c index 9deb297450..2910dceed2 100644 --- a/src/lib/unlang/foreach.c +++ b/src/lib/unlang/foreach.c @@ -615,7 +615,7 @@ static unlang_t *unlang_compile_foreach(unlang_t *parent, unlang_compile_ctx_t * } slen = tmpl_afrom_substr(g, &vpt, - &FR_SBUFF_IN(name2, strlen(name2)), + &FR_SBUFF_IN_STR(name2), token, NULL, &t_rules); diff --git a/src/lib/unlang/limit.c b/src/lib/unlang/limit.c index 3de943b9da..a5f40495b4 100644 --- a/src/lib/unlang/limit.c +++ b/src/lib/unlang/limit.c @@ -164,7 +164,7 @@ static unlang_t *unlang_compile_limit(unlang_t *parent, unlang_compile_ctx_t *un RULES_VERIFY(&t_rules); slen = tmpl_afrom_substr(gext, &vpt, - &FR_SBUFF_IN(name2, strlen(name2)), + &FR_SBUFF_IN_STR(name2), token, NULL, &t_rules); diff --git a/src/lib/unlang/load_balance.c b/src/lib/unlang/load_balance.c index fa4fd1acfe..2b723d3a6e 100644 --- a/src/lib/unlang/load_balance.c +++ b/src/lib/unlang/load_balance.c @@ -280,7 +280,7 @@ static unlang_t *compile_load_balance_subsection(unlang_t *parent, unlang_compil quote = cf_section_name2_quote(cs); gext = unlang_group_to_load_balance(g); slen = tmpl_afrom_substr(gext, &gext->vpt, - &FR_SBUFF_IN(name2, strlen(name2)), + &FR_SBUFF_IN_STR(name2), quote, NULL, &t_rules); diff --git a/src/lib/unlang/switch.c b/src/lib/unlang/switch.c index ca5f0cb846..df8ab6fc5e 100644 --- a/src/lib/unlang/switch.c +++ b/src/lib/unlang/switch.c @@ -191,7 +191,7 @@ static unlang_t *unlang_compile_case(unlang_t *parent, unlang_compile_ctx_t *unl quote = cf_section_name2_quote(cs); slen = tmpl_afrom_substr(cs, &vpt, - &FR_SBUFF_IN(name2, strlen(name2)), + &FR_SBUFF_IN_STR(name2), quote, NULL, &t_rules); @@ -326,12 +326,12 @@ static unlang_t *unlang_compile_switch(unlang_t *parent, unlang_compile_ctx_t *u if ((token == T_BARE_WORD) && (name2[0] != '%')) { slen = tmpl_afrom_attr_substr(gext, NULL, &gext->vpt, - &FR_SBUFF_IN(name2, strlen(name2)), + &FR_SBUFF_IN_STR(name2), NULL, &t_rules); } else { slen = tmpl_afrom_substr(gext, &gext->vpt, - &FR_SBUFF_IN(name2, strlen(name2)), + &FR_SBUFF_IN_STR(name2), token, NULL, &t_rules); diff --git a/src/lib/unlang/timeout.c b/src/lib/unlang/timeout.c index 33a2d8c4a9..4d259bb333 100644 --- a/src/lib/unlang/timeout.c +++ b/src/lib/unlang/timeout.c @@ -218,7 +218,7 @@ static unlang_t *unlang_compile_timeout(unlang_t *parent, unlang_compile_ctx_t * RULES_VERIFY(&t_rules); slen = tmpl_afrom_substr(gext, &vpt, - &FR_SBUFF_IN(name2, strlen(name2)), + &FR_SBUFF_IN_STR(name2), token, NULL, &t_rules); diff --git a/src/lib/unlang/xlat_eval.c b/src/lib/unlang/xlat_eval.c index 963ab28f39..de333f4740 100644 --- a/src/lib/unlang/xlat_eval.c +++ b/src/lib/unlang/xlat_eval.c @@ -1758,7 +1758,7 @@ ssize_t _xlat_eval(TALLOC_CTX *ctx, char **out, size_t outlen, request_t *reques * Give better errors than the old code. */ len = xlat_tokenize(ctx, &head, - &FR_SBUFF_IN(fmt, strlen(fmt)), + &FR_SBUFF_IN_STR(fmt), NULL, &(tmpl_rules_t){ .attr = { diff --git a/src/lib/util/pair_legacy.c b/src/lib/util/pair_legacy.c index ae84678d72..91e736d86e 100644 --- a/src/lib/util/pair_legacy.c +++ b/src/lib/util/pair_legacy.c @@ -718,7 +718,7 @@ int fr_pair_list_afrom_file(TALLOC_CTX *ctx, fr_dict_t const *dict, fr_pair_list * * foo = { bar = baz } */ - if (fr_pair_list_afrom_substr(&root, &relative, &FR_SBUFF_IN(buf, strlen(buf))) < 0) { + if (fr_pair_list_afrom_substr(&root, &relative, &FR_SBUFF_IN_STR(buf)) < 0) { *pfiledone = false; fr_pair_list_free(&tmp_list); return -1; diff --git a/src/lib/util/pair_list_perf_test.c b/src/lib/util/pair_list_perf_test.c index 69c288c368..e8a06941cf 100644 --- a/src/lib/util/pair_list_perf_test.c +++ b/src/lib/util/pair_list_perf_test.c @@ -209,7 +209,7 @@ static void pair_list_init(TALLOC_CTX *ctx, fr_pair_t ***out, fr_dict_t const *d while ((p = strchr(p, '#'))) { *p = (char)(i + 48); } - slen = fr_pair_list_afrom_substr(&root, &relative, &FR_SBUFF_IN(prep_pairs, strlen(prep_pairs))); + slen = fr_pair_list_afrom_substr(&root, &relative, &FR_SBUFF_IN_STR(prep_pairs)); if (slen <= 0) fr_perror("pair_list_perf_tests"); TEST_ASSERT(slen > 0); diff --git a/src/lib/util/size_tests.c b/src/lib/util/size_tests.c index d501185cfe..4f99193b73 100644 --- a/src/lib/util/size_tests.c +++ b/src/lib/util/size_tests.c @@ -35,7 +35,7 @@ fr_slen_t fr_size_to_str(fr_sbuff_t *out, size_t in); */ -#define test_str(_str) &FR_SBUFF_IN(_str, strlen(_str)) +#define test_str(_str) &FR_SBUFF_IN_STR(_str) #define test_out(_buff) &FR_SBUFF_OUT(_buff, sizeof(_buff)) static char buff[sizeof("18446744073709551615") + 3]; diff --git a/src/listen/ldap_sync/active_directory.c b/src/listen/ldap_sync/active_directory.c index f65755421e..eaa94dc524 100644 --- a/src/listen/ldap_sync/active_directory.c +++ b/src/listen/ldap_sync/active_directory.c @@ -108,7 +108,7 @@ int active_directory_sync_state_init(fr_ldap_connection_t *conn, size_t sync_no, DEBUG2("LDAP filter %s does not match Active Directory requirements, parsing for local filtering.", sync->config->filter); filter = "(objectClass=*)"; - ret = fr_ldap_filter_parse(sync, &sync->filter, &FR_SBUFF_IN(config->filter, strlen(config->filter)), + ret = fr_ldap_filter_parse(sync, &sync->filter, &FR_SBUFF_IN_STR(config->filter), active_directory_sync_attr_add, UNCONST(sync_config_t *,config)); if (ret < 0) { CONF_ITEM *ci; diff --git a/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c b/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c index 0704a2db8c..6eba0a622b 100644 --- a/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c +++ b/src/modules/rlm_eap/types/rlm_eap_mschapv2/rlm_eap_mschapv2.c @@ -338,7 +338,7 @@ static unlang_action_t mschap_resume(unlang_result_t *p_result, module_ctx_t con RDEBUG2("Found new challenge from MS-CHAP-Error: err=%d retry=%d challenge=%s", err, retry, buf); fr_base16_decode(NULL, &FR_DBUFF_TMP(data->auth_challenge, 16), - &FR_SBUFF_IN(buf, strlen(buf)), false); + &FR_SBUFF_IN_STR(buf), false); } else { RDEBUG2("Could not parse new challenge from MS-CHAP-Error: %d", n); } diff --git a/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c b/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c index fd2a5980fb..ecc4d12e46 100644 --- a/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c +++ b/src/modules/rlm_redis_ippool/rlm_redis_ippool_tool.c @@ -1610,7 +1610,7 @@ do { \ MEM(fr_sbuff_init_talloc(conf, &out, &tctx, strlen(argv[1]) + 1, SIZE_MAX)); (void) fr_value_str_unescape(&out, - &FR_SBUFF_IN(argv[1], strlen(argv[1])), SIZE_MAX, '"'); + &FR_SBUFF_IN_STR(argv[1]), SIZE_MAX, '"'); talloc_realloc(conf, out.buff, uint8_t, fr_sbuff_used(&out)); pool_arg = (uint8_t *)out.buff; } @@ -1621,7 +1621,7 @@ do { \ MEM(fr_sbuff_init_talloc(conf, &out, &tctx, strlen(argv[1]) + 1, SIZE_MAX)); (void) fr_value_str_unescape(&out, - &FR_SBUFF_IN(argv[2], strlen(argv[2])), SIZE_MAX, '"'); + &FR_SBUFF_IN_STR(argv[2]), SIZE_MAX, '"'); talloc_realloc(conf, out.buff, uint8_t, fr_sbuff_used(&out)); range_arg = (uint8_t *)out.buff; } diff --git a/src/modules/rlm_totp/totp.c b/src/modules/rlm_totp/totp.c index 681eebdea0..ae5bde9885 100644 --- a/src/modules/rlm_totp/totp.c +++ b/src/modules/rlm_totp/totp.c @@ -195,7 +195,7 @@ int main(int argc, char **argv) return 1; } - len = fr_base32_decode(&FR_DBUFF_TMP(key, sizeof(key)), &FR_SBUFF_IN(argv[2], strlen(argv[2])), true, true); + len = fr_base32_decode(&FR_DBUFF_TMP(key, sizeof(key)), &FR_SBUFF_IN_STR(argv[2]), true, true); printf("Decoded %ld %s\n", len, key); for (p = key; p < (key + len); p++) { diff --git a/src/modules/rlm_winbind/rlm_winbind.c b/src/modules/rlm_winbind/rlm_winbind.c index f51f36fb38..050edc0a3c 100644 --- a/src/modules/rlm_winbind/rlm_winbind.c +++ b/src/modules/rlm_winbind/rlm_winbind.c @@ -517,7 +517,7 @@ static int domain_call_env_parse(TALLOC_CTX *ctx, void *out, tmpl_rules_t const } tmpl_afrom_substr(ctx, &parsed_tmpl, - &FR_SBUFF_IN(wb_info->netbios_domain, strlen(wb_info->netbios_domain)), + &FR_SBUFF_IN_STR(wb_info->netbios_domain), T_SINGLE_QUOTED_STRING, NULL, t_rules); if (!parsed_tmpl) { cf_log_perr(ci, "Bad domain"); diff --git a/src/protocols/radius/abinary.c b/src/protocols/radius/abinary.c index ac5a0e0ed4..c741492fb6 100644 --- a/src/protocols/radius/abinary.c +++ b/src/protocols/radius/abinary.c @@ -430,7 +430,7 @@ static int ascend_parse_ipx_net(int argc, char **argv, */ token = fr_base16_decode(NULL, &FR_DBUFF_TMP(net->node, IPX_NODE_ADDR_LEN), - &FR_SBUFF_IN(p, strlen(p)), false); + &FR_SBUFF_IN_STR(p), false); if (token != IPX_NODE_ADDR_LEN) { fr_strerror_printf("IPX network node name '%s' is the wrong size", argv[2]); return -1; @@ -1114,7 +1114,7 @@ static int ascend_parse_generic(int argc, char **argv, slen = fr_base16_decode(NULL, &FR_DBUFF_TMP(filter->mask, sizeof(filter->mask)), - &FR_SBUFF_IN(argv[1], strlen(argv[1])), false); + &FR_SBUFF_IN_STR(argv[1]), false); if (slen != sizeof(filter->mask)) { fr_strerror_printf("Invalid filter mask '%s'", argv[1]); return -1; @@ -1122,7 +1122,7 @@ static int ascend_parse_generic(int argc, char **argv, token = fr_base16_decode(NULL, &FR_DBUFF_TMP(filter->value, sizeof(filter->value)), - &FR_SBUFF_IN(argv[2], strlen(argv[2])), false); + &FR_SBUFF_IN_STR(argv[2]), false); if (token != sizeof(filter->value)) { fr_strerror_printf("Invalid filter mask '%s'", argv[1]); return -1;