svn commit: r307684 - head/sbin/camcontrol

Oliver Pinter oliver.pinter at hardenedbsd.org
Sat Dec 10 23:49:15 UTC 2016


On 10/20/16, Kenneth D. Merry <ken at freebsd.org> wrote:
> Author: ken
> Date: Thu Oct 20 19:42:26 2016
> New Revision: 307684
> URL: https://svnweb.freebsd.org/changeset/base/307684
>
> Log:
>   For CCBs allocated on the stack, we need to clear the entire CCB, not
> just
>   the header.  Otherwise stack garbage can lead to random flags getting
> set.
>
>   This showed up as 'camcontrol rescan all' failing with EINVAL because the
>   address type wasn't CAM_DATA_VADDR.
>
>   sbin/camcontrol/camcontrol.c:
>   	In rescan_or_reset_bus(), bzero the stack-allocated CCBs before
>   	use instead of clearing the body.
>
>   MFC after:	3 days
>   Sponsored by:	Spectra Logic

The MFC of this commit is missed both for 10-STABLE and 11-STABLE. Is
this still in plan to do?

>
> Modified:
>   head/sbin/camcontrol/camcontrol.c
>
> Modified: head/sbin/camcontrol/camcontrol.c
> ==============================================================================
> --- head/sbin/camcontrol/camcontrol.c	Thu Oct 20 18:43:12 2016	(r307683)
> +++ head/sbin/camcontrol/camcontrol.c	Thu Oct 20 19:42:26 2016	(r307684)
> @@ -3139,6 +3139,8 @@ rescan_or_reset_bus(path_id_t bus, int r
>  		return(1);
>  	}
>
> +	bzero(&ccb, sizeof(ccb));
> +
>  	if (bus != CAM_BUS_WILDCARD) {
>  		ccb.ccb_h.func_code = rescan ? XPT_SCAN_BUS : XPT_RESET_BUS;
>  		ccb.ccb_h.path_id = bus;
> @@ -3181,7 +3183,7 @@ rescan_or_reset_bus(path_id_t bus, int r
>  	 * no-op, sending a rescan to the xpt bus would result in a status of
>  	 * CAM_REQ_INVALID.
>  	 */
> -	CCB_CLEAR_ALL_EXCEPT_HDR(&matchccb.cdm);
> +	bzero(&matchccb, sizeof(matchccb));
>  	matchccb.ccb_h.func_code = XPT_DEV_MATCH;
>  	matchccb.ccb_h.path_id = CAM_BUS_WILDCARD;
>  	bufsize = sizeof(struct dev_match_result) * 20;
> _______________________________________________
> svn-src-head at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscribe at freebsd.org"
>


More information about the svn-src-head mailing list