|
@@ -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;
|