Index: head/sys/netinet6/in6_pcb.c =================================================================== --- head/sys/netinet6/in6_pcb.c +++ head/sys/netinet6/in6_pcb.c @@ -849,10 +849,7 @@ in6_losing(struct inpcb *in6p) { - if (in6p->inp_route6.ro_rt) { - RTFREE(in6p->inp_route6.ro_rt); - in6p->inp_route6.ro_rt = (struct rtentry *)NULL; - } + RO_RTFREE(&in6p->inp_route6); if (in6p->inp_route6.ro_lle) LLE_FREE(in6p->inp_route6.ro_lle); /* zeros ro_lle */ return; @@ -866,10 +863,7 @@ in6_rtchange(struct inpcb *inp, int errno) { - if (inp->inp_route6.ro_rt) { - RTFREE(inp->inp_route6.ro_rt); - inp->inp_route6.ro_rt = (struct rtentry *)NULL; - } + RO_RTFREE(&in6p->inp_route6); if (inp->inp_route6.ro_lle) LLE_FREE(inp->inp_route6.ro_lle); /* zeros ro_lle */ return inp;