diff mbox series

vhost-user-blk: fix the resize crash

Message ID 20220919121816.3252223-1-fengli@smartx.com (mailing list archive)
State New, archived
Headers show
Series vhost-user-blk: fix the resize crash | expand

Commit Message

Li Feng Sept. 19, 2022, 12:18 p.m. UTC
If the os is not installed and doesn't have the virtio guest driver,
the vhost dev isn't started, so the dev->vdev is NULL.

Reproduce: mount a Win 2019 iso, go into the install ui, then resize
the virtio-blk device, qemu crash.

Signed-off-by: Li Feng <fengli@smartx.com>
---
 hw/block/vhost-user-blk.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Raphael Norwitz Sept. 21, 2022, 2:51 a.m. UTC | #1
>If the os is not installed and doesn't have the virtio guest driver,

>the vhost dev isn't started, so the dev->vdev is NULL.

>

>Reproduce: mount a Win 2019 iso, go into the install ui, then resize

>the virtio-blk device, qemu crash.

>

>Signed-off-by: Li Feng fengli@smartx.com<mailto:fengli@smartx.com>



Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>



>---

> hw/block/vhost-user-blk.c | 4 ++++

> 1 file changed, 4 insertions(+)

>

>diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c

>index 9117222456..db30bb754f 100644

>--- a/hw/block/vhost-user-blk.c

>+++ b/hw/block/vhost-user-blk.c

>@@ -95,6 +95,10 @@ static int vhost_user_blk_handle_config_change(struct vhost_dev *dev)

>     VHostUserBlk *s = VHOST_USER_BLK(dev->vdev);

>     Error *local_err = NULL;

>

>+    if (!dev->started) {

>+        return 0;

>+    }

>+

>     ret = vhost_dev_get_config(dev, (uint8_t *)&blkcfg,

>                                sizeof(struct virtio_blk_config),

>                                &local_err);

>--

>2.37.3

>
Kevin Wolf Oct. 21, 2022, 9:54 a.m. UTC | #2
Am 19.09.2022 um 14:18 hat Li Feng geschrieben:
> If the os is not installed and doesn't have the virtio guest driver,
> the vhost dev isn't started, so the dev->vdev is NULL.
> 
> Reproduce: mount a Win 2019 iso, go into the install ui, then resize
> the virtio-blk device, qemu crash.
> 
> Signed-off-by: Li Feng <fengli@smartx.com>

Thanks, applied to the block branch.

Kevin
diff mbox series

Patch

diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c
index 9117222456..db30bb754f 100644
--- a/hw/block/vhost-user-blk.c
+++ b/hw/block/vhost-user-blk.c
@@ -95,6 +95,10 @@  static int vhost_user_blk_handle_config_change(struct vhost_dev *dev)
     VHostUserBlk *s = VHOST_USER_BLK(dev->vdev);
     Error *local_err = NULL;
 
+    if (!dev->started) {
+        return 0;
+    }
+
     ret = vhost_dev_get_config(dev, (uint8_t *)&blkcfg,
                                sizeof(struct virtio_blk_config),
                                &local_err);