DragonFlyBSD Kernel Audit
DF-1621 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/raid/mrsas/mrsas_cam.c b/sys/dev/raid/mrsas/mrsas_cam.c
--- a/sys/dev/raid/mrsas/mrsas_cam.c
+++ b/sys/dev/raid/mrsas/mrsas_cam.c
@@ -487,9 +487,9 @@
     cmd->request_desc = req_desc;
 
     if (ccb_h->flags & CAM_CDB_POINTER)
-        bcopy(csio->cdb_io.cdb_ptr, cmd->io_request->CDB.CDB32, csio->cdb_len);
+        bcopy(csio->cdb_io.cdb_ptr, cmd->io_request->CDB.CDB32, min(csio->cdb_len, 32));
     else
-        bcopy(csio->cdb_io.cdb_bytes, cmd->io_request->CDB.CDB32, csio->cdb_len);
+        bcopy(csio->cdb_io.cdb_bytes, cmd->io_request->CDB.CDB32, min(csio->cdb_len, 32));
     lockmgr(&sc->raidmap_lock, LK_EXCLUSIVE);
 
     if (mrsas_ldio_inq(sim, ccb)) {