DragonFlyBSD Kernel Audit
DF-1081 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/bus/u4b/net/if_cue.c b/sys/bus/u4b/net/if_cue.c
--- a/sys/bus/u4b/net/if_cue.c
+++ b/sys/bus/u4b/net/if_cue.c
@@ -308,15 +308,15 @@ cue_getmac(struct cue_softc *sc, void *buf)
 	struct ifnet *ifp = uether_getifp(ue);
 	struct ifmultiaddr *ifma;
 	uint32_t h = 0, i;
-	uint8_t hashtbl[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
+	uint8_t hashtbl[64] = { 0 };
 
 	CUE_LOCK_ASSERT(sc);
 
 	if (ifp->if_flags & IFF_ALLMULTI || ifp->if_flags & IFF_PROMISC) {
-		for (i = 0; i < 8; i++)
+		for (i = 0; i < 64; i++)
 			hashtbl[i] = 0xff;
 		cue_mem(sc, CUE_CMD_WRITESRAM, CUE_MCAST_TABLE_ADDR,
-		    &hashtbl, 8);
+		    &hashtbl, 64);
 		return;
 	}
 
@@ -338,7 +338,7 @@ cue_getmac(struct cue_softc *sc, void *buf)
 		hashtbl[h >> 3] |= 1 << (h & 0x7);
 	}
 
-	cue_mem(sc, CUE_CMD_WRITESRAM, CUE_MCAST_TABLE_ADDR, &hashtbl, 8);
+	cue_mem(sc, CUE_CMD_WRITESRAM, CUE_MCAST_TABLE_ADDR, &hashtbl, 64);
 }
 
 static void