On 10/20/16, Kenneth D. Merry <k...@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@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/svn-src-head
> To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
>
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to