mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-07 07:37:02 +02: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
@ -1855,11 +1855,12 @@ int readcfgfile(const char *file)
|
||||
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 New Issue
Block a user