Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 Mar 2017 05:56:48 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r314835 - stable/11/sys/dev/firewire
Message-ID:  <201703070556.v275umCk079995@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Tue Mar  7 05:56:48 2017
New Revision: 314835
URL: https://svnweb.freebsd.org/changeset/base/314835

Log:
  MFC r314374: Add safety check against too long CDB.
  
  SBP-2 specification defined maximum CDB length as 12 bytes.  Newer SBP-3
  specification allows CDB of any size, but this driver is too old.  Proper
  solution would be to look on maximal ORB size supported by the target.

Modified:
  stable/11/sys/dev/firewire/sbp.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/firewire/sbp.c
==============================================================================
--- stable/11/sys/dev/firewire/sbp.c	Tue Mar  7 05:35:14 2017	(r314834)
+++ stable/11/sys/dev/firewire/sbp.c	Tue Mar  7 05:56:48 2017	(r314835)
@@ -2367,6 +2367,11 @@ END_DEBUG
 			xpt_done(ccb);
 			return;
 		}
+		if (csio->cdb_len > sizeof(ocb->orb) - 5 * sizeof(uint32_t)) {
+			ccb->ccb_h.status = CAM_REQ_INVALID;
+			xpt_done(ccb);
+			return;
+		}
 #if 0
 		/* if we are in probe stage, pass only probe commands */
 		if (sdev->status == SBP_DEV_PROBE) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201703070556.v275umCk079995>