⬢ DragonFlyBSD Kernel Audit
DF-3397 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/net/netmap/netmap_mem2.c b/sys/net/netmap/netmap_mem2.c
--- a/sys/net/netmap/netmap_mem2.c
+++ b/sys/net/netmap/netmap_mem2.c
@@ -971,7 +971,8 @@ netmap_mem_rings_create(struct netmap_adapter *na)
 		ring->cur = kring->nr_hwcur;
 		ring->avail = kring->nr_hwavail;
-		*(int *)(uintptr_t)&ring->nr_buf_size =
+		/* DF-3397: nr_buf_size is uint16_t; a 4-byte store clobbers flags */
+		*(uint16_t *)(uintptr_t)&ring->nr_buf_size =
 		    NETMAP_BDG_BUF_SIZE(na->nm_mem);