⬢ DragonFlyBSD Kernel Audit
DF-2513 / fix.diff
← back to finding ↓ download raw
--- /home/maxx/dfbsd/dfbsd/sys/dev/disk/nvme/nvme_admin.c	2026-06-29 12:51:18.000000000 +0000
+++ sys/dev/disk/nvme/nvme_admin.c	2026-10-24 09:11:52.098751509 +0000
@@ -672,7 +672,14 @@
 
 		j = NVME_FLBAS_SEL_GET(nsc->idns.flbas);
 		lbafmt = &nsc->idns.lba_fmt[j];
-		nsc->blksize = 1 << lbafmt->sect_size;
+		if (lbafmt->sect_size < 9 || lbafmt->sect_size > 12) {
+			device_printf(sc->dev, "namespace %08x reports "
+			    "invalid LBA format size %u\n", nsc->nsid,
+			    lbafmt->sect_size);
+			nvme_put_request(req);
+			continue;
+		}
+		nsc->blksize = 1u << lbafmt->sect_size;
 
 		/*
 		 * Attach the namespace