]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
have only one return point from tokenize_expression()
authorAlan T. DeKok <aland@freeradius.org>
Thu, 20 Jan 2022 21:25:57 +0000 (16:25 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 21 Jan 2022 16:23:06 +0000 (11:23 -0500)
which may make it easier to groupify things.

src/lib/unlang/xlat_expr.c

index f10dce7a47aee036674414e11e581a9a935d8b53..b982d256d8a31e30baa51fd4a9ba5bf93a2124e6 100644 (file)
@@ -1094,6 +1094,7 @@ redo:
         *      No more input, we're done.
         */
        if (fr_sbuff_extend(&in) == 0) {
+       done:
                *head = lhs;
                return fr_sbuff_set(input, &in);
        }
@@ -1111,8 +1112,7 @@ redo:
                        FR_SBUFF_ERROR_RETURN(&in);
                }
 
-               *head = lhs;
-               return fr_sbuff_set(input, &in);
+               goto done;
        }
        fr_sbuff_skip_whitespace(&in);
 
@@ -1173,8 +1173,8 @@ redo:
         *      take care of continuing.
         */
        if (precedence[op] <= precedence[prev]) {
-               *head = lhs;
-               return fr_sbuff_set(input, &marker);
+               fr_sbuff_set(&in, &marker);
+               goto done;
        }
 
        /*