diff --git a/[refs] b/[refs] index 5a373b3449bb..ef86fae37450 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5c3ddec73d01a1fae9409c197078cb02c42238c3 +refs/heads/master: b43faac69062f0fc75bd3230d67da64e184232d1 diff --git a/trunk/net/ipv6/route.c b/trunk/net/ipv6/route.c index d98cf41edf2a..4bf362baa97a 100644 --- a/trunk/net/ipv6/route.c +++ b/trunk/net/ipv6/route.c @@ -1089,8 +1089,10 @@ struct dst_entry *icmp6_dst_alloc(struct net_device *dev, neigh_hold(neigh); else { neigh = __neigh_lookup_errno(&nd_tbl, &fl6->daddr, dev); - if (IS_ERR(neigh)) - neigh = NULL; + if (IS_ERR(neigh)) { + dst_free(&rt->dst); + return ERR_CAST(neigh); + } } rt->dst.flags |= DST_HOST;