DragonFlyBSD Kernel Audit
DF-0585 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/net/tap/if_tap.c b/sys/net/tap/if_tap.c
--- a/sys/net/tap/if_tap.c
+++ b/sys/net/tap/if_tap.c
@@ -741,8 +741,10 @@
 	switch (ap->a_cmd) {
 	case TAPSIFINFO:
 		tapp = (struct tapinfo *)data;
-		if (ifp->if_type != tapp->type)
+		if (ifp->if_type != tapp->type) {
+			ifnet_deserialize_all(ifp);
 			return (EPROTOTYPE);
+		}
 		ifp->if_mtu = tapp->mtu;
 		ifp->if_baudrate = tapp->baudrate;
 		break;