diff options
| -rw-r--r-- | net/ipv6/ip6_output.c | 5 | 
1 files changed, 2 insertions, 3 deletions
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index dae1949019d..95703ba2c08 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -381,9 +381,8 @@ int ip6_forward(struct sk_buff *skb)  	 *	cannot be fragmented, because there is no warranty  	 *	that different fragments will go along one path. --ANK  	 */ -	if (opt->ra) { -		u8 *ptr = skb_network_header(skb) + opt->ra; -		if (ip6_call_ra_chain(skb, (ptr[2]<<8) + ptr[3])) +	if (unlikely(opt->flags & IP6SKB_ROUTERALERT)) { +		if (ip6_call_ra_chain(skb, ntohs(opt->ra)))  			return 0;  	}  |