diff options
author | Justin Tee <justin.tee@broadcom.com> | 2024-06-28 10:20:10 -0700 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2024-07-04 23:24:52 -0400 |
commit | 8bc7c617642db6d8d20ee671fb6c4513017e7a7e (patch) | |
tree | 466dc4f462dc5c61f441142389c044d1e2cc8556 /drivers/scsi/NCR5380.h | |
parent | f65f31ac120bd2c308bf16b18e5ee74445c06446 (diff) |
scsi: lpfc: Revise lpfc_prep_embed_io routine with proper endian macro usages
On big endian architectures, it is possible to run into a memory out of
bounds pointer dereference when FCP targets are zoned.
In lpfc_prep_embed_io, the memcpy(ptr, fcp_cmnd, sgl->sge_len) is
referencing a little endian formatted sgl->sge_len value. So, the memcpy
can cause big endian systems to crash.
Redefine the *sgl ptr as a struct sli4_sge_le to make it clear that we are
referring to a little endian formatted data structure. And, update the
routine with proper le32_to_cpu macro usages.
Fixes: af20bb73ac25 ("scsi: lpfc: Add support for 32 byte CDBs")
Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Link: https://lore.kernel.org/r/20240628172011.25921-8-justintee8345@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/NCR5380.h')
0 files changed, 0 insertions, 0 deletions