DragonFlyBSD Kernel Audit
DF-1812 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/disk/nvme/nvme_admin.c b/sys/dev/disk/nvme/nvme_admin.c
--- a/sys/dev/disk/nvme/nvme_admin.c
+++ b/sys/dev/disk/nvme/nvme_admin.c
@@ -672,7 +672,11 @@
 
 		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 > 16) {
+			nsc->blksize = 0;
+		} else {
+			nsc->blksize = 1U << lbafmt->sect_size;
+		}
 
 		/*
 		 * Attach the namespace