scsi: megaraid_sas: array overflow in megasas_dump_frame()
Subsystems (3)
PATCH 1/1 scsi: megaraid_sas: array overflow in megasas_dump_frame()
The "sz" variable is in terms of bytes, but we're treating the buffer as an array of __le32 so we have to divide by 4.
drivers/scsi/megaraid/megaraid_sas_base.c +1 -1
@@ -2754,7 +2754,7 @@ megasas_dump_frame(void *mpi_request, int sz)__le32 *mfp = (__le32 *)mpi_request;printk (KERN_INFO "IO request frame:\n\t" ); -for (i =0 ; i < sz; i++) { +for (i =0 ; i < sz /sizeof (__le32); i++) {if (i && ((i %8 ) =0 ))printk ("\n\t" );printk ("%08x " ,le32_to_cpu (mfp[i]));
Quoted 8 lines
-----Original Message-----
From: Dan Carpenter [mailto:[email protected]]
Sent: Tuesday, February 14, 2017 10:09 PM
To: Kashyap Desai; Shivasharan S
Cc: Sumit Saxena; James E.J. Bottomley; Martin K. Petersen; [email protected]; [email protected]; kernel- [email protected]
Subject: [patch] scsi:megaraid_sas: array overflow in
megasas_dump_frame()
Quoted 2 lines
The "sz" variable is in terms of bytes, but we're treating the buffer as
an array of
Quoted 3 lines
__le32so we have to divide by 4.Fixes def0eab3af86 ("scsi: megaraid_sas: enhance debug logs in OCR
context")
Quoted 8 lines
Signed-off-by Dan Carpenter <[email protected]>drivers/scsi/megaraid/megaraid_sas_base.c +0
-0
drivers/scsi/megaraid/megaraid_sas_base.c megasas_dump_frame(void *mpi_request, int sz) · line 2760
Quoted 8 lines
drivers/scsi/megaraid/megaraid_sas_base.c +1
-1@@ -2754,7 +2754,7 @@ megasas_dump_frame(void *mpi_request, int sz)__le32 *mfp = (__le32 *)mpi_request;printk (KERN_INFO "IO request frame:\n\t" ); -for (i =0 ; i < sz; i++) { +for (i =0 ; i < sz /sizeof (__le32); i++) {if (i && ((i %8 ) ==0 ))printk ("\n\t" );printk ("%08x " ,le32_to_cpu (mfp[i]));
Thanks for fixing this.
Quoted 8 lines
-----Original Message-----
From: Dan Carpenter [mailto:[email protected]]
Sent: Tuesday, February 14, 2017 10:09 PM
To: Kashyap Desai; Shivasharan S
Cc: Sumit Saxena; James E.J. Bottomley; Martin K. Petersen; [email protected]; [email protected]; kernel- [email protected]
Subject: [patch] scsi:megaraid_sas: array overflow in
megasas_dump_frame()
Quoted 2 lines
The "sz" variable is in terms of bytes, but we're treating the buffer as
an array of
Quoted 3 lines
__le32so we have to divide by 4.Fixes def0eab3af86 ("scsi: megaraid_sas: enhance debug logs in OCR
context")
Quoted 8 lines
Signed-off-by Dan Carpenter <[email protected]>drivers/scsi/megaraid/megaraid_sas_base.c +0
-0
drivers/scsi/megaraid/megaraid_sas_base.c megasas_dump_frame(void *mpi_request, int sz) · line 2760
Quoted 8 lines
drivers/scsi/megaraid/megaraid_sas_base.c +1
-1@@ -2754,7 +2754,7 @@ megasas_dump_frame(void *mpi_request, int sz)__le32 *mfp = (__le32 *)mpi_request;printk (KERN_INFO "IO request frame:\n\t" ); -for (i =0 ; i < sz; i++) { +for (i =0 ; i < sz /sizeof (__le32); i++) {if (i && ((i %8 ) ==0 ))printk ("\n\t" );printk ("%08x " ,le32_to_cpu (mfp[i]));
Patch looks good. In last reply, Acked-by tag was not in proper format. Fixing it now. Sorry for inconvenience.
Martin K. Petersen
AppliedQuoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Dan" = Dan Carpenter <[email protected]> writes:
Dan> The "sz" variable is in terms of bytes, but we're treating the Dan> buffer as an array of __le32 so we have to divide by 4.
Dan> Fixes: def0eab3af86 ("scsi: megaraid_sas: enhance debug logs in OCR Dan> context") Signed-off-by: Dan Carpenter <[email protected]>
Applied to 4.11/scsi-queue.
Signature · 1 line
Martin K. Petersen Oracle Linux Engineering