diff mbox

[net] ematch: Fix matching of inverted containers.

Message ID 20140924163839.GA6925@zenon.in.qult.net
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Ignacy Gawędzki Sept. 24, 2014, 4:38 p.m. UTC
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>
---
 net/sched/ematch.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Cong Wang Sept. 25, 2014, 9:08 p.m. UTC | #1
(Cc'ing Thomas)

On Wed, Sep 24, 2014 at 9:38 AM, Ignacy Gawędzki
<ignacy.gawedzki@green-communications.fr> wrote:
> 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>
> ---
>  net/sched/ematch.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/net/sched/ematch.c b/net/sched/ematch.c
> index 3a633de..ad57f44 100644
> --- a/net/sched/ematch.c
> +++ b/net/sched/ematch.c
> @@ -526,9 +526,11 @@ pop_stack:
>                 match_idx = stack[--stackp];
>                 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;
> -               else {
> +               } else {
>                         match_idx++;
>                         goto proceed;
>                 }
> --
> 1.9.1
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller Sept. 29, 2014, 7:31 p.m. UTC | #2
From: Ignacy Gawędzki <ignacy.gawedzki@green-communications.fr>
Date: Wed, 24 Sep 2014 18:38:39 +0200

> 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>

Applied, thank you.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/net/sched/ematch.c b/net/sched/ematch.c
index 3a633de..ad57f44 100644
--- a/net/sched/ematch.c
+++ b/net/sched/ematch.c
@@ -526,9 +526,11 @@  pop_stack:
 		match_idx = stack[--stackp];
 		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;
-		else {
+		} else {
 			match_idx++;
 			goto proceed;
 		}