mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-03 23:58:05 +00:00
ematch: Fix matching of inverted containers.
Negated expressions and sub-expressions need to have their flags checked for TCF_EM_INVERT and their result negated accordingly. Signed-off-by: Ignacy Gawędzki <ignacy.gawedzki@green-communications.fr> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
73d3fe6d1c
commit
17c9c82326
1 changed files with 4 additions and 2 deletions
|
@ -526,9 +526,11 @@ int __tcf_em_tree_match(struct sk_buff *skb, struct tcf_ematch_tree *tree,
|
||||||
match_idx = stack[--stackp];
|
match_idx = stack[--stackp];
|
||||||
cur_match = tcf_em_get_match(tree, match_idx);
|
cur_match = tcf_em_get_match(tree, match_idx);
|
||||||
|
|
||||||
if (tcf_em_early_end(cur_match, res))
|
if (tcf_em_early_end(cur_match, res)) {
|
||||||
|
if (tcf_em_is_inverted(cur_match))
|
||||||
|
res = !res;
|
||||||
goto pop_stack;
|
goto pop_stack;
|
||||||
else {
|
} else {
|
||||||
match_idx++;
|
match_idx++;
|
||||||
goto proceed;
|
goto proceed;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue