diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c index e091deefa7dc..d7a0e6ff6bae 100644 --- a/sys/netinet6/nd6.c +++ b/sys/netinet6/nd6.c @@ -1894,6 +1894,7 @@ nd6_output(ifp, origifp, m0, dst, rt0) if (rt->rt_gwroute == 0) goto lookup; if (((rt = rt->rt_gwroute)->rt_flags & RTF_UP) == 0) { + RT_LOCK(rt); rtfree(rt); rt = rt0; lookup: rt->rt_gwroute = rtalloc1(rt->rt_gateway, 1, 0UL);