DragonFlyBSD Kernel Audit
DF-1270 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/raid/mps/mps_sas.c b/sys/dev/raid/mps/mps_sas.c
--- a/sys/dev/raid/mps/mps_sas.c
+++ b/sys/dev/raid/mps/mps_sas.c
@@ -1683,9 +1683,9 @@
 	}
 
 	if (csio->ccb_h.flags & CAM_CDB_POINTER)
-		bcopy(csio->cdb_io.cdb_ptr, &req->CDB.CDB32[0], csio->cdb_len);
+		bcopy(csio->cdb_io.cdb_ptr, &req->CDB.CDB32[0], imin(csio->cdb_len, sizeof(req->CDB.CDB32)));
 	else
-		bcopy(csio->cdb_io.cdb_bytes, &req->CDB.CDB32[0],csio->cdb_len);
+		bcopy(csio->cdb_io.cdb_bytes, &req->CDB.CDB32[0], imin(csio->cdb_len, sizeof(req->CDB.CDB32)));
 	req->IoFlags = csio->cdb_len;
 
 	/*