libcam(3): make cam_getccb(3) zero the whole ccb, not just the header
Leaving zeroing to the clients leads to error-prone pointer tricks (zeroing needs to preserve the CCB header), and this code is not performance-critical, so there's really no reason to not do it. Reviewed By: imp, rpokala (manpages) Sponsored by: NetApp, Inc. Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D27333
This commit is contained in:
parent
4ddb3cc597
commit
3e404b8c53
@ -27,7 +27,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd July 6, 2020
|
||||
.Dd November 23, 2020
|
||||
.Dt CAM 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -285,9 +285,9 @@ This function should be called when the
|
||||
structure was allocated by the caller, rather than the CAM library.
|
||||
.Pp
|
||||
.Fn cam_getccb
|
||||
allocates a CCB
|
||||
allocates a prezeroed CCB
|
||||
using
|
||||
.Xr malloc 3
|
||||
.Xr calloc 3
|
||||
and sets fields in the CCB header using values from the
|
||||
.Va cam_device
|
||||
structure.
|
||||
|
@ -79,9 +79,8 @@ cam_getccb(struct cam_device *dev)
|
||||
{
|
||||
union ccb *ccb;
|
||||
|
||||
ccb = (union ccb *)malloc(sizeof(union ccb));
|
||||
ccb = calloc(1, sizeof(*ccb));
|
||||
if (ccb != NULL) {
|
||||
bzero(&ccb->ccb_h, sizeof(struct ccb_hdr));
|
||||
ccb->ccb_h.path_id = dev->path_id;
|
||||
ccb->ccb_h.target_id = dev->target_id;
|
||||
ccb->ccb_h.target_lun = dev->target_lun;
|
||||
|
Loading…
Reference in New Issue
Block a user