Skip to content
This repository was archived by the owner on Nov 8, 2023. It is now read-only.

Commit 429846b

Browse files
kawasakimartinkpetersen
authored andcommitted
scsi: mpi3mr: Avoid memcpy field-spanning write WARNING
When the "storcli2 show" command is executed for eHBA-9600, mpi3mr driver prints this WARNING message: memcpy: detected field-spanning write (size 128) of single field "bsg_reply_buf->reply_buf" at drivers/scsi/mpi3mr/mpi3mr_app.c:1658 (size 1) WARNING: CPU: 0 PID: 12760 at drivers/scsi/mpi3mr/mpi3mr_app.c:1658 mpi3mr_bsg_request+0x6b12/0x7f10 [mpi3mr] The cause of the WARN is 128 bytes memcpy to the 1 byte size array "__u8 replay_buf[1]" in the struct mpi3mr_bsg_in_reply_buf. The array is intended to be a flexible length array, so the WARN is a false positive. To suppress the WARN, remove the constant number '1' from the array declaration and clarify that it has flexible length. Also, adjust the memory allocation size to match the change. Suggested-by: Sathya Prakash Veerichetty <sathya.prakash@broadcom.com> Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com> Link: https://lore.kernel.org/r/20240323084155.166835-1-shinichiro.kawasaki@wdc.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
1 parent 0c76106 commit 429846b

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

drivers/scsi/mpi3mr/mpi3mr_app.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1644,7 +1644,7 @@ static long mpi3mr_bsg_process_mpt_cmds(struct bsg_job *job)
16441644
if ((mpirep_offset != 0xFF) &&
16451645
drv_bufs[mpirep_offset].bsg_buf_len) {
16461646
drv_buf_iter = &drv_bufs[mpirep_offset];
1647-
drv_buf_iter->kern_buf_len = (sizeof(*bsg_reply_buf) - 1 +
1647+
drv_buf_iter->kern_buf_len = (sizeof(*bsg_reply_buf) +
16481648
mrioc->reply_sz);
16491649
bsg_reply_buf = kzalloc(drv_buf_iter->kern_buf_len, GFP_KERNEL);
16501650

include/uapi/scsi/scsi_bsg_mpi3mr.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ struct mpi3mr_bsg_in_reply_buf {
382382
__u8 mpi_reply_type;
383383
__u8 rsvd1;
384384
__u16 rsvd2;
385-
__u8 reply_buf[1];
385+
__u8 reply_buf[];
386386
};
387387

388388
/**

0 commit comments

Comments
 (0)