diff options
Diffstat (limited to 'net/sched/act_nat.c')
| -rw-r--r-- | net/sched/act_nat.c | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/net/sched/act_nat.c b/net/sched/act_nat.c index d885ba31156..570949417f3 100644 --- a/net/sched/act_nat.c +++ b/net/sched/act_nat.c @@ -159,6 +159,9 @@ static int tcf_nat(struct sk_buff *skb, struct tc_action *a,  			iph->daddr = new_addr;  		csum_replace4(&iph->check, addr, new_addr); +	} else if ((iph->frag_off & htons(IP_OFFSET)) || +		   iph->protocol != IPPROTO_ICMP) { +		goto out;  	}  	ihl = iph->ihl * 4; @@ -247,6 +250,7 @@ static int tcf_nat(struct sk_buff *skb, struct tc_action *a,  		break;  	} +out:  	return action;  drop:  |