diff --git a/sys/dev/raid/tws/tws_cam.c b/sys/dev/raid/tws/tws_cam.c --- a/sys/dev/raid/tws/tws_cam.c +++ b/sys/dev/raid/tws/tws_cam.c @@ -759,9 +759,9 @@ #endif if(ccb_h->flags & CAM_CDB_POINTER) - bcopy(csio->cdb_io.cdb_ptr, cmd_pkt->cmd.pkt_a.cdb, csio->cdb_len); + bcopy(csio->cdb_io.cdb_ptr, cmd_pkt->cmd.pkt_a.cdb, min(csio->cdb_len, 16)); else - bcopy(csio->cdb_io.cdb_bytes, cmd_pkt->cmd.pkt_a.cdb, csio->cdb_len); + bcopy(csio->cdb_io.cdb_bytes, cmd_pkt->cmd.pkt_a.cdb, min(csio->cdb_len, 16)); if (!(ccb_h->flags & CAM_DATA_PHYS)) { /* Virtual data addresses. Need to convert them... */