DragonFlyBSD Kernel Audit
DF-0340 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c
--- a/sys/netinet6/in6.c
+++ b/sys/netinet6/in6.c
@@ -318,10 +318,11 @@
 		rt = rtpurelookup(ifa->ifa_addr);
 		if (rt != NULL && (rt->rt_flags & RTF_HOST) &&
 		    (rt->rt_ifp->if_flags & IFF_LOOPBACK)) {
-			rt->rt_refcnt--;
 			in6_ifloop_request(RTM_DELETE, ifa,
 			                   in6_ifloop_request_callback);
 		}
+		if (rt != NULL)
+			rt->rt_refcnt--;
 	}
 }