]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
scsi: megaraid: Fix mega_cmd_done() CMDID_INT_CMDS
authorDanila Chernetsov <listdansp@mail.ru>
Fri, 17 Mar 2023 17:51:09 +0000 (17:51 +0000)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 25 Mar 2023 00:27:17 +0000 (20:27 -0400)
When cmdid == CMDID_INT_CMDS, the 'cmds' pointer is NULL but is
dereferenced below.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 0f2bb84d2a68 ("[SCSI] megaraid: simplify internal command handling")
Signed-off-by: Danila Chernetsov <listdansp@mail.ru>
Link: https://lore.kernel.org/r/20230317175109.18585-1-listdansp@mail.ru
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/megaraid.c

index 3115ab991fc69c6a163feb47cfeb779f6452d154..e92f1a73cc9bccdec8ad7af534f44b9a4e5f26f8 100644 (file)
@@ -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;
+                       cmd = scb->cmd;
 
                        list_del_init(&scb->list);
                        scb->state = SCB_FREE;