From: Alan T. DeKok Date: Wed, 8 Jun 2022 13:28:16 +0000 (-0400) Subject: don't stop on ret>0, stop *recursing* X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1bb427f9d83bf7c2109385d516c4181147d3328e;p=thirdparty%2Ffreeradius-server.git don't stop on ret>0, stop *recursing* and continue with the next node --- diff --git a/src/lib/unlang/xlat_eval.c b/src/lib/unlang/xlat_eval.c index e3ef3aa347e..2607046a879 100644 --- a/src/lib/unlang/xlat_eval.c +++ b/src/lib/unlang/xlat_eval.c @@ -1813,7 +1813,6 @@ int xlat_eval_walk(xlat_exp_head_t *head, xlat_walker_t walker, xlat_type_t type if (!type || (type & XLAT_FUNC)) { ret = walker(node, uctx); if (ret < 0) return ret; - if (ret > 0) return 0; } break; @@ -1826,7 +1825,6 @@ int xlat_eval_walk(xlat_exp_head_t *head, xlat_walker_t walker, xlat_type_t type if (!type || (type & XLAT_FUNC_UNRESOLVED)) { ret = walker(node, uctx); if (ret < 0) return ret; - if (ret > 0) return 0; } break; @@ -1834,7 +1832,7 @@ int xlat_eval_walk(xlat_exp_head_t *head, xlat_walker_t walker, xlat_type_t type if (!type || (type & XLAT_ALTERNATE)) { ret = walker(node, uctx); if (ret < 0) return ret; - if (ret > 0) return 0; + if (ret > 0) continue; } /* @@ -1854,7 +1852,7 @@ int xlat_eval_walk(xlat_exp_head_t *head, xlat_walker_t walker, xlat_type_t type if (!type || (type & XLAT_GROUP)) { ret = walker(node, uctx); if (ret < 0) return ret; - if (ret > 0) return 0; + if (ret > 0) continue; } /* @@ -1868,8 +1866,8 @@ int xlat_eval_walk(xlat_exp_head_t *head, xlat_walker_t walker, xlat_type_t type if (!type || (type & node->type)) { ret = walker(node, uctx); if (ret < 0) return ret; - if (ret > 0) return 0; } + break; } }