On Mon, 2023-04-03 at 17:34 +0300, Igor Artemiev wrote:No, I haven't seen this. A null dereference can be if the 'status' is 0x02. But if 'status' cannot be equal to 0x02, assignment isn't required.
When cmdid == CMDID_INT_CMDS, the 'mbox' pointer is NULL but isHave you actually seen this and if so which firmware? I thought
dereferenced below.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Fixes: 0f2bb84d2a68 ("[SCSI] megaraid: simplify internal command
handling")
Signed-off-by: Igor Artemiev <Igor.A.Artemiev@xxxxxxx>
---
drivers/scsi/megaraid.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c
index bf491af9f0d6..4fbf92dc717e 100644
--- a/drivers/scsi/megaraid.c
+++ b/drivers/scsi/megaraid.c
@@ -1441,6 +1441,7 @@ mega_cmd_done(adapter_t *adapter, u8
completed[], int nstatus, int status)
*/
if (cmdid == CMDID_INT_CMDS) {
scb = &adapter->int_scb;
+ mbox = (mbox_t *)scb->raw_mbox;
megaraid internal commands only ever returned success or fail (0 or 1)
meaning they can never get into the sense processing case that is the
only consumer of the mbox.
James