DragonFlyBSD Kernel Audit
DF-0367 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/net/lagg/if_lagg.c b/sys/net/lagg/if_lagg.c
--- a/sys/net/lagg/if_lagg.c
+++ b/sys/net/lagg/if_lagg.c
@@ -1442,8 +1442,14 @@
 lagg_input(struct ifnet *ifp, struct mbuf *m)
 {
 	struct lagg_port *lp = ifp->if_lagg;
-	struct lagg_softc *sc = lp->lp_softc;
-	struct ifnet *scifp = sc->sc_ifp;
+	struct lagg_softc *sc;
+	struct ifnet *scifp;
+
+	if (lp == NULL || (sc = lp->lp_softc) == NULL) {
+		m_freem(m);
+		return;
+	}
+	scifp = sc->sc_ifp;
 	
 	LAGG_RLOCK(sc);
 	if ((scifp->if_flags & IFF_RUNNING) == 0 ||