* [Qemu-devel] [PATCH] hw/scsi/virtio-scsi.c: fix the "type" use error in virtio_scsi_handle_ctrl
@ 2014-10-25 2:43 Bin Wu
2014-10-27 9:27 ` Paolo Bonzini
0 siblings, 1 reply; 2+ messages in thread
From: Bin Wu @ 2014-10-25 2:43 UTC (permalink / raw)
To: qemu-devel; +Cc: pbonzini, Bin Wu
The local variable "type" in virtio_scsi_handle_ctl represents the tmf
command type from the guest and it has the same meaning as the
req->req.tmf.type. However, before the invoking of virtio_scsi_parse_req
the req->req.tmf.type doesn't has the correct value(just initialized to
zero). Therefore, we need to use the "type" variable to judge the case.
Signed-off-by: Bin Wu <wu.wubin@huawei.com>
---
hw/scsi/virtio-scsi.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c
index a1725b8..5742d39 100644
--- a/hw/scsi/virtio-scsi.c
+++ b/hw/scsi/virtio-scsi.c
@@ -378,8 +378,8 @@ void virtio_scsi_handle_ctrl_req(VirtIOSCSI *s, VirtIOSCSIReq *req)
return;
}
- virtio_tswap32s(vdev, &req->req.tmf.type);
- if (req->req.tmf.type == VIRTIO_SCSI_T_TMF) {
+ virtio_tswap32s(vdev, &type);
+ if (type == VIRTIO_SCSI_T_TMF) {
if (virtio_scsi_parse_req(req, sizeof(VirtIOSCSICtrlTMFReq),
sizeof(VirtIOSCSICtrlTMFResp)) < 0) {
virtio_scsi_bad_req();
@@ -387,8 +387,8 @@ void virtio_scsi_handle_ctrl_req(VirtIOSCSI *s, VirtIOSCSIReq *req)
r = virtio_scsi_do_tmf(s, req);
}
- } else if (req->req.tmf.type == VIRTIO_SCSI_T_AN_QUERY ||
- req->req.tmf.type == VIRTIO_SCSI_T_AN_SUBSCRIBE) {
+ } else if (type == VIRTIO_SCSI_T_AN_QUERY ||
+ type == VIRTIO_SCSI_T_AN_SUBSCRIBE) {
if (virtio_scsi_parse_req(req, sizeof(VirtIOSCSICtrlANReq),
sizeof(VirtIOSCSICtrlANResp)) < 0) {
virtio_scsi_bad_req();
--
1.7.12.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [PATCH] hw/scsi/virtio-scsi.c: fix the "type" use error in virtio_scsi_handle_ctrl
2014-10-25 2:43 [Qemu-devel] [PATCH] hw/scsi/virtio-scsi.c: fix the "type" use error in virtio_scsi_handle_ctrl Bin Wu
@ 2014-10-27 9:27 ` Paolo Bonzini
0 siblings, 0 replies; 2+ messages in thread
From: Paolo Bonzini @ 2014-10-27 9:27 UTC (permalink / raw)
To: Bin Wu, qemu-devel
On 10/25/2014 04:43 AM, Bin Wu wrote:
> The local variable "type" in virtio_scsi_handle_ctl represents the tmf
> command type from the guest and it has the same meaning as the
> req->req.tmf.type. However, before the invoking of virtio_scsi_parse_req
> the req->req.tmf.type doesn't has the correct value(just initialized to
> zero). Therefore, we need to use the "type" variable to judge the case.
>
> Signed-off-by: Bin Wu <wu.wubin@huawei.com>
> ---
> hw/scsi/virtio-scsi.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c
> index a1725b8..5742d39 100644
> --- a/hw/scsi/virtio-scsi.c
> +++ b/hw/scsi/virtio-scsi.c
> @@ -378,8 +378,8 @@ void virtio_scsi_handle_ctrl_req(VirtIOSCSI *s, VirtIOSCSIReq *req)
> return;
> }
>
> - virtio_tswap32s(vdev, &req->req.tmf.type);
> - if (req->req.tmf.type == VIRTIO_SCSI_T_TMF) {
> + virtio_tswap32s(vdev, &type);
> + if (type == VIRTIO_SCSI_T_TMF) {
> if (virtio_scsi_parse_req(req, sizeof(VirtIOSCSICtrlTMFReq),
> sizeof(VirtIOSCSICtrlTMFResp)) < 0) {
> virtio_scsi_bad_req();
> @@ -387,8 +387,8 @@ void virtio_scsi_handle_ctrl_req(VirtIOSCSI *s, VirtIOSCSIReq *req)
> r = virtio_scsi_do_tmf(s, req);
> }
>
> - } else if (req->req.tmf.type == VIRTIO_SCSI_T_AN_QUERY ||
> - req->req.tmf.type == VIRTIO_SCSI_T_AN_SUBSCRIBE) {
> + } else if (type == VIRTIO_SCSI_T_AN_QUERY ||
> + type == VIRTIO_SCSI_T_AN_SUBSCRIBE) {
> if (virtio_scsi_parse_req(req, sizeof(VirtIOSCSICtrlANReq),
> sizeof(VirtIOSCSICtrlANResp)) < 0) {
> virtio_scsi_bad_req();
>
Thanks, applied.
Paolo
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-10-27 9:28 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-25 2:43 [Qemu-devel] [PATCH] hw/scsi/virtio-scsi.c: fix the "type" use error in virtio_scsi_handle_ctrl Bin Wu
2014-10-27 9:27 ` Paolo Bonzini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).