DragonFlyBSD Kernel Audit
DF-1592 / fix.diff
← back to finding ↓ download raw
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... */