Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 707be1ff authored by YOSHIFUJI Hideaki / 吉藤英明's avatar YOSHIFUJI Hideaki / 吉藤英明 Committed by David S. Miller
Browse files

ipv6: Do not depend on rt->n in ip6_dst_lookup_tail().

parent 9bb5a148
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -913,8 +913,12 @@ static int ip6_dst_lookup_tail(struct sock *sk,
	 * dst entry of the nexthop router
	 */
	rt = (struct rt6_info *) *dst;
	n = rt->n;
	if (n && !(n->nud_state & NUD_VALID)) {
	rcu_read_lock_bh();
	n = __ipv6_neigh_lookup_noref(rt->dst.dev, rt6_nexthop(rt, &fl6->daddr));
	err = n && !(n->nud_state & NUD_VALID) ? -EINVAL : 0;
	rcu_read_unlock_bh();

	if (err) {
		struct inet6_ifaddr *ifp;
		struct flowi6 fl_gw6;
		int redirect;