⬢ DragonFlyBSD Kernel Audit
DF-3346 / fix.diff
← back to finding ↓ download raw
--- a/sys/net/lagg/if_lagg.c
+++ b/sys/net/lagg/if_lagg.c
@@ -1110 SIOCSLAGG
 			sc->sc_proto = lagg_protos[i].ti_proto;
 			if (sc->sc_proto != LAGG_PROTO_NONE)
 				error = lagg_protos[i].ti_attach(sc);
+			if (error != 0) {	/* DF-3346: roll back on
+						 * failed attach */
+				sc->sc_detach = NULL;
+				sc->sc_proto = LAGG_PROTO_NONE;
+			}
 			LAGG_WUNLOCK(sc);