From: Paolo Bonzini Date: Thu, 8 Sep 2016 15:42:53 +0000 (+0200) Subject: Revert "megasas: remove useless check for cmd->frame" X-Git-Tag: v2.7.1~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=db1604cd60f1736098eec4feba099b9bd885b8ed;p=thirdparty%2Fqemu.git Revert "megasas: remove useless check for cmd->frame" 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 Cc: qemu-stable@nongnu.org Signed-off-by: Paolo Bonzini (cherry picked from commit 421cc3e7e89cb807d3c5f6de486abb2167c8e792) Signed-off-by: Michael Roth --- diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c index e968302fdc2..52a41239cf3 100644 --- a/hw/scsi/megasas.c +++ b/hw/scsi/megasas.c @@ -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); }