[PATCH v2 0/2] virtio: fix virtio_add_queue() queue size Coverity issue

Stefan Hajnoczi posted 2 patches 1 month, 4 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260730205846.19479-1-stefanha@redhat.com
Maintainers: "Michael S. Tsirkin" <mst@redhat.com>, Christian Schoenebeck <qemu_oss@crudebyte.com>, Greg Kurz <groug@kaod.org>, Gerd Hoffmann <kraxel@redhat.com>, Manos Pitsidianakis <manos.pitsidianakis@linaro.org>, Raphael Norwitz <rnorwitz@nvidia.com>, Stefano Garzarella <sgarzare@redhat.com>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>, Stefan Hajnoczi <stefanha@redhat.com>, Laurent Vivier <lvivier@redhat.com>, Amit Shah <amit@kernel.org>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>, Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>, Dmitry Osipenko <dmitry.osipenko@collabora.com>, Jason Wang <jasowangio@gmail.com>, Fam Zheng <fam@euphon.net>, Milan Zamazal <mzamazal@redhat.com>, David Hildenbrand <david@kernel.org>, "Gonglei (Arei)" <arei.gonglei@huawei.com>, Eric Auger <eric.auger@redhat.com>, Alexander Graf <graf@amazon.com>, Dorjoy Chowdhury <dorjoychy111@gmail.com>, Kuan-Wei Chiu <visitorckw@gmail.com>
include/hw/virtio/virtio.h     |  4 ++--
hw/9pfs/virtio-9p-device.c     |  2 +-
hw/audio/virtio-snd.c          |  8 +++----
hw/block/vhost-user-blk.c      |  3 ++-
hw/block/virtio-blk.c          |  3 ++-
hw/char/virtio-serial-bus.c    | 14 ++++++------
hw/display/virtio-gpu-base.c   |  8 +++----
hw/input/virtio-input.c        |  6 ++++--
hw/net/virtio-net.c            | 15 ++++++++-----
hw/scsi/virtio-scsi.c          |  9 +++++---
hw/virtio/vdpa-dev.c           |  3 ++-
hw/virtio/vhost-user-base.c    |  3 ++-
hw/virtio/vhost-user-fs.c      |  8 +++++--
hw/virtio/vhost-user-scmi.c    |  6 ++++--
hw/virtio/vhost-vsock-common.c |  9 +++++---
hw/virtio/virtio-balloon.c     | 15 ++++++++-----
hw/virtio/virtio-crypto.c      |  6 ++++--
hw/virtio/virtio-iommu.c       |  6 ++++--
hw/virtio/virtio-mem.c         |  3 ++-
hw/virtio/virtio-nsm.c         |  2 +-
hw/virtio/virtio-pmem.c        |  2 +-
hw/virtio/virtio-rng.c         |  2 +-
hw/virtio/virtio-rtc.c         |  3 ++-
hw/virtio/virtio.c             | 39 +++++++++++++++++++++++++++++-----
24 files changed, 122 insertions(+), 57 deletions(-)
[PATCH v2 0/2] virtio: fix virtio_add_queue() queue size Coverity issue
Posted by Stefan Hajnoczi 1 month, 4 weeks ago
v2:
- Deal with x-override-queue-size, the root cause for the Coverity issue
  [Peter]

virtio_add_queue() uses int rather than unsigned int for the virtqueue size. It
also fails to validate the x-override-queue-size qdev property. Refactor the
code to solve these issues.

Patch 2 adds an Error **errp argument to virtio_add_queue() and changes all
callers to pass &error_abort. This solution requires many code changes, but
it's a step in the direction of propagating errors and that should be the
long-term goal.

Stefan Hajnoczi (2):
  virtio: make virtio_add_queue() queue_size an unsigned int
  virtio: use Error for queue size validation in virtio_add_queue()

 include/hw/virtio/virtio.h     |  4 ++--
 hw/9pfs/virtio-9p-device.c     |  2 +-
 hw/audio/virtio-snd.c          |  8 +++----
 hw/block/vhost-user-blk.c      |  3 ++-
 hw/block/virtio-blk.c          |  3 ++-
 hw/char/virtio-serial-bus.c    | 14 ++++++------
 hw/display/virtio-gpu-base.c   |  8 +++----
 hw/input/virtio-input.c        |  6 ++++--
 hw/net/virtio-net.c            | 15 ++++++++-----
 hw/scsi/virtio-scsi.c          |  9 +++++---
 hw/virtio/vdpa-dev.c           |  3 ++-
 hw/virtio/vhost-user-base.c    |  3 ++-
 hw/virtio/vhost-user-fs.c      |  8 +++++--
 hw/virtio/vhost-user-scmi.c    |  6 ++++--
 hw/virtio/vhost-vsock-common.c |  9 +++++---
 hw/virtio/virtio-balloon.c     | 15 ++++++++-----
 hw/virtio/virtio-crypto.c      |  6 ++++--
 hw/virtio/virtio-iommu.c       |  6 ++++--
 hw/virtio/virtio-mem.c         |  3 ++-
 hw/virtio/virtio-nsm.c         |  2 +-
 hw/virtio/virtio-pmem.c        |  2 +-
 hw/virtio/virtio-rng.c         |  2 +-
 hw/virtio/virtio-rtc.c         |  3 ++-
 hw/virtio/virtio.c             | 39 +++++++++++++++++++++++++++++-----
 24 files changed, 122 insertions(+), 57 deletions(-)

-- 
2.55.0