From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
Laurent Vivier <lvivier@redhat.com>,
Thomas Huth <thuth@redhat.com>,
qemu-block@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>,
Peter Maydell <peter.maydell@linaro.org>,
Coiby Xu <coiby.xu@gmail.com>, Max Reitz <mreitz@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Raphael Norwitz <raphael.norwitz@nutanix.com>
Subject: [PATCH v3 00/12] block/export: vhost-user-blk server tests and input validation
Date: Tue, 23 Feb 2021 14:46:41 +0000 [thread overview]
Message-ID: <20210223144653.811468-1-stefanha@redhat.com> (raw)
v3:
* Rebased onto qemu.git/master (7ef8134565dc)
* I asked Coiby Xu for clarification on a comment about vhost-user-blk-test in
v2. Please wait for that discussion to finish before merging.
v2:
* Add abrt handler that terminates qemu-storage-daemon to
vhost-user-blk-test. No more orphaned processes on test failure. [Peter]
* Fix sector number calculation in vhost-user-blk-server.c
* Introduce VIRTIO_BLK_SECTOR_BITS/SIZE to make code clearer [Max]
* Fix vhost-user-blk-server.c blk_size double byteswap
* Fix vhost-user-blk blkcfg->num_queues endianness [Peter]
* Squashed cleanups into Coiby vhost-user-blk-test commit so the code is
easier to review
The vhost-user-blk server test was already in Michael Tsirkin's recent vhost
pull request, but was dropped because it exposed vhost-user regressions
(b7c1bd9d7848 and the Based-on tag below). Now that the vhost-user regressions
are fixed we can re-introduce the test case.
This series adds missing input validation that led to a Coverity report. The
virtio-blk read, write, discard, and write zeroes commands need to check
sector/byte ranges and other inputs. This solves the issue Peter Maydell raised
in "[PATCH for-5.2] block/export/vhost-user-blk-server.c: Avoid potential
integer overflow".
Merging just the input validation patches would be possible too, but I prefer
to merge the corresponding tests so the code is exercised by the CI.
Coiby Xu (1):
test: new qTest case to test the vhost-user-blk-server
Stefan Hajnoczi (11):
vhost-user-blk: fix blkcfg->num_queues endianness
libqtest: add qtest_socket_server()
libqtest: add qtest_kill_qemu()
libqtest: add qtest_remove_abrt_handler()
tests/qtest: add multi-queue test case to vhost-user-blk-test
block/export: fix blk_size double byteswap
block/export: use VIRTIO_BLK_SECTOR_BITS
block/export: fix vhost-user-blk export sector number calculation
block/export: port virtio-blk discard/write zeroes input validation
vhost-user-blk-test: test discard/write zeroes invalid inputs
block/export: port virtio-blk read/write range check
MAINTAINERS | 2 +
tests/qtest/libqos/libqtest.h | 37 +
tests/qtest/libqos/vhost-user-blk.h | 48 ++
block/export/vhost-user-blk-server.c | 150 +++-
hw/block/vhost-user-blk.c | 7 +-
tests/qtest/libqos/vhost-user-blk.c | 130 ++++
tests/qtest/libqtest.c | 82 ++-
tests/qtest/vhost-user-blk-test.c | 983 +++++++++++++++++++++++++++
tests/qtest/libqos/meson.build | 1 +
tests/qtest/meson.build | 4 +
10 files changed, 1385 insertions(+), 59 deletions(-)
create mode 100644 tests/qtest/libqos/vhost-user-blk.h
create mode 100644 tests/qtest/libqos/vhost-user-blk.c
create mode 100644 tests/qtest/vhost-user-blk-test.c
--
2.29.2
next reply other threads:[~2021-02-23 14:49 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-23 14:46 Stefan Hajnoczi [this message]
2021-02-23 14:46 ` [PATCH v3 01/12] vhost-user-blk: fix blkcfg->num_queues endianness Stefan Hajnoczi
2021-02-23 16:13 ` Michael S. Tsirkin
2021-02-24 15:12 ` Stefan Hajnoczi
2021-02-23 14:46 ` [PATCH v3 02/12] libqtest: add qtest_socket_server() Stefan Hajnoczi
2021-02-23 14:46 ` [PATCH v3 03/12] libqtest: add qtest_kill_qemu() Stefan Hajnoczi
2021-03-08 6:38 ` Thomas Huth
2021-02-23 14:46 ` [PATCH v3 04/12] libqtest: add qtest_remove_abrt_handler() Stefan Hajnoczi
2021-03-08 6:44 ` Thomas Huth
2021-02-23 14:46 ` [PATCH v3 05/12] test: new qTest case to test the vhost-user-blk-server Stefan Hajnoczi
2021-02-23 14:46 ` [PATCH v3 06/12] tests/qtest: add multi-queue test case to vhost-user-blk-test Stefan Hajnoczi
2021-02-23 14:46 ` [PATCH v3 07/12] block/export: fix blk_size double byteswap Stefan Hajnoczi
2021-02-23 14:46 ` [PATCH v3 08/12] block/export: use VIRTIO_BLK_SECTOR_BITS Stefan Hajnoczi
2021-02-23 14:46 ` [PATCH v3 09/12] block/export: fix vhost-user-blk export sector number calculation Stefan Hajnoczi
2021-02-23 14:46 ` [PATCH v3 10/12] block/export: port virtio-blk discard/write zeroes input validation Stefan Hajnoczi
2021-02-23 14:46 ` [PATCH v3 11/12] vhost-user-blk-test: test discard/write zeroes invalid inputs Stefan Hajnoczi
2021-02-23 14:46 ` [PATCH v3 12/12] block/export: port virtio-blk read/write range check Stefan Hajnoczi
2021-03-03 12:40 ` [PATCH v3 00/12] block/export: vhost-user-blk server tests and input validation Kevin Wolf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210223144653.811468-1-stefanha@redhat.com \
--to=stefanha@redhat.com \
--cc=coiby.xu@gmail.com \
--cc=kwolf@redhat.com \
--cc=lvivier@redhat.com \
--cc=mreitz@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=raphael.norwitz@nutanix.com \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.