From: Alan T. DeKok Date: Thu, 19 Dec 2019 14:23:01 +0000 (-0500) Subject: check variable before dereferencing it. Found by PVS-Studio X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e93d21eefdc0fec8548e810552f5e40e4977364a;p=thirdparty%2Ffreeradius-server.git check variable before dereferencing it. Found by PVS-Studio --- diff --git a/src/lib/unlang/foreach.c b/src/lib/unlang/foreach.c index 710592ac795..6cd46a4867a 100644 --- a/src/lib/unlang/foreach.c +++ b/src/lib/unlang/foreach.c @@ -123,7 +123,7 @@ static unlang_action_t unlang_foreach_next(REQUEST *request, rlm_rcode_t *presul static unlang_action_t unlang_foreach(REQUEST *request, rlm_rcode_t *presult) { unlang_stack_t *stack = request->stack; - unlang_stack_frame_t *frame = &stack->frame[stack->depth]; + unlang_stack_frame_t *frame; unlang_t *instruction = frame->instruction; unlang_frame_state_foreach_t *foreach = NULL; unlang_group_t *g; @@ -132,16 +132,18 @@ static unlang_action_t unlang_foreach(REQUEST *request, rlm_rcode_t *presult) g = unlang_generic_to_group(instruction); - /* - * Ensure any breaks terminate here... - */ - break_point_set(frame); - if (stack->depth >= UNLANG_STACK_MAX) { ERROR("Internal sanity check failed: module stack is too deep"); fr_exit(EXIT_FAILURE); } + frame = &stack->frame[stack->depth]; + + /* + * Ensure any breaks terminate here... + */ + break_point_set(frame); + /* * Figure out foreach depth by walking back up the stack */