| From 1ed2f73d90fb49bcf5704aee7e9084adb882bfc5 Mon Sep 17 00:00:00 2001 |
| From: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp> |
| Date: Tue, 10 May 2011 10:00:21 +0200 |
| Subject: netfilter: IPv6: fix DSCP mangle code |
| |
| From: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp> |
| |
| commit 1ed2f73d90fb49bcf5704aee7e9084adb882bfc5 upstream. |
| |
| The mask indicates the bits one wants to zero out, so it needs to be |
| inverted before applying to the original TOS field. |
| |
| Signed-off-by: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp> |
| Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| net/netfilter/xt_DSCP.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/net/netfilter/xt_DSCP.c |
| +++ b/net/netfilter/xt_DSCP.c |
| @@ -99,7 +99,7 @@ tos_tg6(struct sk_buff *skb, const struc |
| u_int8_t orig, nv; |
| |
| orig = ipv6_get_dsfield(iph); |
| - nv = (orig & info->tos_mask) ^ info->tos_value; |
| + nv = (orig & ~info->tos_mask) ^ info->tos_value; |
| |
| if (orig != nv) { |
| if (!skb_make_writable(skb, sizeof(struct iphdr))) |