⬢ DragonFlyBSD Kernel Audit
DF-3410 / fix.diff
← back to finding ↓ download raw
--- a/sys/net/tun/if_tun.c
+++ b/sys/net/tun/if_tun.c
@@ -731 TUNSIFMODE
 		switch (*(int *)data & ~IFF_MULTICAST) {
 		case IFF_POINTOPOINT:
 		case IFF_BROADCAST:
 			ifp->if_flags &= ~(IFF_BROADCAST | IFF_POINTOPOINT);
-			ifp->if_flags |= *(int *)data;	/* raw word */
+			ifp->if_flags |= *(int *)data & ~IFF_MULTICAST;
+							/* DF-3410: inject the
+							 * validated mask */
 			break;