From: Fernando Luis Vazquez Cao <[email protected]> The mask indicates the bits one wants to zero out, so it needs to be inverted before applying to the original TOS field.
The following Linux kernels are affected: <= 2.6.38.8 Cc: [email protected] Signed-off-by: Fernando Luis Vazquez Cao <[email protected]> Signed-off-by: Pablo Neira Ayuso <[email protected]> (cherry picked from commit 1ed2f73d90fb49bcf5704aee7e9084adb882bfc5) --- net/netfilter/xt_DSCP.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/net/netfilter/xt_DSCP.c b/net/netfilter/xt_DSCP.c index 0a22919..ae82716 100644 --- a/net/netfilter/xt_DSCP.c +++ b/net/netfilter/xt_DSCP.c @@ -99,7 +99,7 @@ tos_tg6(struct sk_buff *skb, const struct xt_action_param *par) 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))) -- 1.7.2.5 _______________________________________________ stable mailing list [email protected] http://linux.kernel.org/mailman/listinfo/stable
