]> www.infradead.org Git - users/dwmw2/qemu.git/commitdiff
Revert "megasas: remove useless check for cmd->frame"
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 8 Sep 2016 15:42:53 +0000 (17:42 +0200)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Tue, 13 Dec 2016 00:15:33 +0000 (18:15 -0600)
This reverts commit 8cc46787b5b58f01a11c919c7ff939ed009e27fc.
It turns out that cmd->frame can be NULL and thus the commit
can cause a SIGSEGV

Reported-by: Holger Schranz <holger@fam-schranz.de>
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit 421cc3e7e89cb807d3c5f6de486abb2167c8e792)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
hw/scsi/megasas.c

index e968302fdc2ffed84a0acc554805bf26dc2fbdc9..52a41239cf315a4a449f46fcbe55ed32eb92ec2d 100644 (file)
@@ -1981,7 +1981,11 @@ static void megasas_handle_frame(MegasasState *s, uint64_t frame_addr,
         break;
     }
     if (frame_status != MFI_STAT_INVALID_STATUS) {
-        cmd->frame->header.cmd_status = frame_status;
+        if (cmd->frame) {
+            cmd->frame->header.cmd_status = frame_status;
+        } else {
+            megasas_frame_set_cmd_status(s, frame_addr, frame_status);
+        }
         megasas_unmap_frame(s, cmd);
         megasas_complete_frame(s, cmd->context);
     }