DragonFlyBSD Kernel Audit
DF-1509 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/netif/bfe/if_bfe.c b/sys/dev/netif/bfe/if_bfe.c
--- a/sys/dev/netif/bfe/if_bfe.c
+++ b/sys/dev/netif/bfe/if_bfe.c
@@ -890,6 +890,10 @@
 		TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
  			if (ifma->ifma_addr->sa_family != AF_LINK)
  				continue;
+			if (i >= (BFE_CAM_INDEX_MASK >> BFE_CAM_INDEX_SHIFT)) {
+				val |= BFE_RXCONF_ALLMULTI;
+				break;
+			}
  			bfe_cam_write(sc,
  			    LLADDR((struct sockaddr_dl *)ifma->ifma_addr), i++);
  		}