From: Phil Oester <kernel@linuxace.com>
Date: Mon, 14 Aug 2006 01:05:35 +0000 (-0700)
Subject: [NETFILTER]: xt_string: fix negation
X-Git-Tag: firefly_0821_release~33895
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=97c802a113989800430a981b6f36b14c62163d37;p=firefly-linux-kernel-4.4.55.git

[NETFILTER]: xt_string: fix negation

The xt_string match is broken with ! negation.
This resolves a portion of netfilter bugzilla #497.

Signed-off-by: Phil Oester <kernel@linuxace.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
---

diff --git a/net/netfilter/xt_string.c b/net/netfilter/xt_string.c
index d8e3891b5f8b..275330fcdaaa 100644
--- a/net/netfilter/xt_string.c
+++ b/net/netfilter/xt_string.c
@@ -37,7 +37,7 @@ static int match(const struct sk_buff *skb,
 
 	return (skb_find_text((struct sk_buff *)skb, conf->from_offset, 
 			     conf->to_offset, conf->config, &state) 
-			     != UINT_MAX) && !conf->invert;
+			     != UINT_MAX) ^ conf->invert;
 }
 
 #define STRING_TEXT_PRIV(m) ((struct xt_string_info *) m)