DF-1621 / fix.diff
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)) { |