diff options
Diffstat (limited to 'net/ipv6/ndisc.c')
| -rw-r--r-- | net/ipv6/ndisc.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index d8f02ef88e5..c964958ac47 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -1545,9 +1545,10 @@ void ndisc_send_redirect(struct sk_buff *skb, struct neighbour *neigh,  			 &saddr_buf, &ipv6_hdr(skb)->saddr, dev->ifindex);  	dst = ip6_route_output(net, NULL, &fl6); -	if (dst == NULL) +	if (dst->error) { +		dst_release(dst);  		return; - +	}  	dst = xfrm_lookup(net, dst, flowi6_to_flowi(&fl6), NULL, 0);  	if (IS_ERR(dst))  		return;  |