From: Arran Cudbard-Bell Date: Wed, 3 Nov 2021 20:20:11 +0000 (-0400) Subject: Catch logic errors sooner in tmpl_extents_find X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=612911a6e026016edec9c2a378bf6eea8c7fbd40;p=thirdparty%2Ffreeradius-server.git Catch logic errors sooner in tmpl_extents_find --- diff --git a/src/lib/server/tmpl_eval.c b/src/lib/server/tmpl_eval.c index 7130ccddde7..20e9addafa6 100644 --- a/src/lib/server/tmpl_eval.c +++ b/src/lib/server/tmpl_eval.c @@ -1452,7 +1452,7 @@ int tmpl_extents_find(TALLOC_CTX *ctx, if (vpt->type == TMPL_TYPE_LIST) { do_list: if (leaf) EXTENT_ADD(leaf, NULL, list_ctx, list_head); - return 0; + goto done; } /* @@ -1543,6 +1543,17 @@ int tmpl_extents_find(TALLOC_CTX *ctx, } } +done: + /* + * If we were asked to provide interior + * and leaf lists, and there's no result + * in either, then that's a logic error. + * + * We either have an attribute or will + * need to build out pairs to it. + */ + fr_assert(!leaf || !interior || (fr_dlist_num_elements(leaf) > 0) || (fr_dlist_num_elements(interior) > 0)); + return 0; }