From: Alan T. DeKok Date: Mon, 26 Aug 2024 17:43:15 +0000 (-0400) Subject: move parse check to before extra work X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e6fcb47782981aceb2f0b4238d1b2e9d2fec1b86;p=thirdparty%2Ffreeradius-server.git move parse check to before extra work --- diff --git a/src/lib/server/cf_file.c b/src/lib/server/cf_file.c index 15c5c72ac22..a9efe1dce72 100644 --- a/src/lib/server/cf_file.c +++ b/src/lib/server/cf_file.c @@ -1631,6 +1631,16 @@ static CONF_ITEM *process_if(cf_stack_t *stack) fr_assert((size_t) slen < (stack->bufsize - 1)); + ptr += slen; + fr_skip_whitespace(ptr); + + if (*ptr != '{') { + cf_log_err(cs, "Expected '{' instead of %s", ptr); + talloc_free(cs); + return NULL; + } + ptr++; + /* * Save the parsed condition (minus trailing whitespace) * into a buffer. @@ -1657,16 +1667,6 @@ static CONF_ITEM *process_if(cf_stack_t *stack) MEM(cs->name2 = talloc_typed_strdup(cs, buff[3])); cs->name2_quote = T_BARE_WORD; - ptr += slen; - fr_skip_whitespace(ptr); - - if (*ptr != '{') { - cf_log_err(cs, "Expected '{' instead of %s", ptr); - talloc_free(cs); - return NULL; - } - ptr++; - stack->ptr = ptr; cs->allow_locals = true;