mirror of
https://github.com/haproxy/haproxy.git
synced 2026-04-23 23:28:47 -04:00
BUG/MINOR: config: fix uninitialized initial state in ".if" block evaluator
The condition to skip the block in the ".if" evaluator forgot to check that the level was high enough, resulting in rare cases where a random value matched one of the 5 values that cause the block to be skipped. No backport is needed as it's 2.4-only.
This commit is contained in:
parent
e763c8c99f
commit
6e647c94f2
1 changed files with 6 additions and 5 deletions
|
|
@ -1855,11 +1855,12 @@ next_line:
|
|||
goto err;
|
||||
}
|
||||
|
||||
if (nested_conds[nested_cond_lvl - 1] == NESTED_COND_IF_DROP ||
|
||||
nested_conds[nested_cond_lvl - 1] == NESTED_COND_IF_SKIP ||
|
||||
nested_conds[nested_cond_lvl - 1] == NESTED_COND_ELIF_DROP ||
|
||||
nested_conds[nested_cond_lvl - 1] == NESTED_COND_ELIF_SKIP ||
|
||||
nested_conds[nested_cond_lvl - 1] == NESTED_COND_ELSE_DROP) {
|
||||
if (nested_cond_lvl > 1 &&
|
||||
(nested_conds[nested_cond_lvl - 1] == NESTED_COND_IF_DROP ||
|
||||
nested_conds[nested_cond_lvl - 1] == NESTED_COND_IF_SKIP ||
|
||||
nested_conds[nested_cond_lvl - 1] == NESTED_COND_ELIF_DROP ||
|
||||
nested_conds[nested_cond_lvl - 1] == NESTED_COND_ELIF_SKIP ||
|
||||
nested_conds[nested_cond_lvl - 1] == NESTED_COND_ELSE_DROP)) {
|
||||
nested_conds[nested_cond_lvl] = NESTED_COND_IF_SKIP;
|
||||
} else if (!*args[1] || *args[1] == '0') {
|
||||
/* empty = false */
|
||||
|
|
|
|||
Loading…
Reference in a new issue