From: Changli Gao Date: Thu, 29 Jul 2010 13:41:46 +0000 (+0000) Subject: act_nat: fix wild pointer X-Git-Tag: v2.6.36-rc1~571^2~9^2~1 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=072d79a31a3b870b49886f4347e23f81b7eca3ac;p=~shefty%2Frdma-dev.git act_nat: fix wild pointer pskb_may_pull() may change skb pointers, so adjust icmph after pskb_may_pull(). Signed-off-by: Changli Gao Acked-by: Herbert Xu Signed-off-by: David S. Miller --- diff --git a/net/sched/act_nat.c b/net/sched/act_nat.c index 724553e8ed7..ea008f57fc8 100644 --- a/net/sched/act_nat.c +++ b/net/sched/act_nat.c @@ -218,6 +218,7 @@ static int tcf_nat(struct sk_buff *skb, struct tc_action *a, if (!pskb_may_pull(skb, ihl + sizeof(*icmph) + sizeof(*iph))) goto drop; + icmph = (void *)(skb_network_header(skb) + ihl); iph = (void *)(icmph + 1); if (egress) addr = iph->daddr;