This adds a small test for the image streaming error path for failing
block_job_create(), which would have found the null pointer dereference
in commit a170a91f.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
tests/qemu-iotests/030 | 4 ++++
tests/qemu-iotests/030.out | 4 ++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030
index e00c11b..feee861 100755
--- a/tests/qemu-iotests/030
+++ b/tests/qemu-iotests/030
@@ -147,6 +147,10 @@ class TestSingleDrive(iotests.QMPTestCase):
result = self.vm.qmp('block-stream', device='nonexistent')
self.assert_qmp(result, 'error/class', 'GenericError')
+ def test_job_id_missing(self):
+ result = self.vm.qmp('block-stream', device='mid')
+ self.assert_qmp(result, 'error/class', 'GenericError')
+
class TestParallelOps(iotests.QMPTestCase):
num_ops = 4 # Number of parallel block-stream operations
diff --git a/tests/qemu-iotests/030.out b/tests/qemu-iotests/030.out
index 84bfd63..391c857 100644
--- a/tests/qemu-iotests/030.out
+++ b/tests/qemu-iotests/030.out
@@ -1,5 +1,5 @@
-......................
+.......................
----------------------------------------------------------------------
-Ran 22 tests
+Ran 23 tests
OK
--
1.8.3.1
On Mon 15 May 2017 02:39:40 PM CEST, Kevin Wolf wrote: > This adds a small test for the image streaming error path for failing > block_job_create(), which would have found the null pointer dereference > in commit a170a91f. > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- > tests/qemu-iotests/030 | 4 ++++ > tests/qemu-iotests/030.out | 4 ++-- > 2 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030 > index e00c11b..feee861 100755 > --- a/tests/qemu-iotests/030 > +++ b/tests/qemu-iotests/030 > @@ -147,6 +147,10 @@ class TestSingleDrive(iotests.QMPTestCase): > result = self.vm.qmp('block-stream', device='nonexistent') > self.assert_qmp(result, 'error/class', 'GenericError') > > + def test_job_id_missing(self): > + result = self.vm.qmp('block-stream', device='mid') > + self.assert_qmp(result, 'error/class', 'GenericError') Mmm... but does that trigger the bug? The bug happens if the user tries to create a stream job on a BDS that: a) exists b) is not the active node (i.e. needs reopening in read-write mode) c) its node name is not valid for a block job (e.g. it contains a '#') Berto
Am 15.05.2017 um 14:46 hat Alberto Garcia geschrieben: > On Mon 15 May 2017 02:39:40 PM CEST, Kevin Wolf wrote: > > This adds a small test for the image streaming error path for failing > > block_job_create(), which would have found the null pointer dereference > > in commit a170a91f. > > > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > > --- > > tests/qemu-iotests/030 | 4 ++++ > > tests/qemu-iotests/030.out | 4 ++-- > > 2 files changed, 6 insertions(+), 2 deletions(-) > > > > diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030 > > index e00c11b..feee861 100755 > > --- a/tests/qemu-iotests/030 > > +++ b/tests/qemu-iotests/030 > > @@ -147,6 +147,10 @@ class TestSingleDrive(iotests.QMPTestCase): > > result = self.vm.qmp('block-stream', device='nonexistent') > > self.assert_qmp(result, 'error/class', 'GenericError') > > > > + def test_job_id_missing(self): > > + result = self.vm.qmp('block-stream', device='mid') > > + self.assert_qmp(result, 'error/class', 'GenericError') > > Mmm... but does that trigger the bug? > > The bug happens if the user tries to create a stream job on a BDS that: > > a) exists > b) is not the active node (i.e. needs reopening in read-write mode) > c) its node name is not valid for a block job (e.g. it contains a '#') I don't think c) is necessary, block jobs that are owned by a BDS identified by a node name always require an explicit job ID. And yes, I did test that it actually breaks before your fix. Kevin
On Mon 15 May 2017 03:05:00 PM CEST, Kevin Wolf wrote: >> Mmm... but does that trigger the bug? >> >> The bug happens if the user tries to create a stream job on a BDS that: >> >> a) exists >> b) is not the active node (i.e. needs reopening in read-write mode) >> c) its node name is not valid for a block job (e.g. it contains a '#') > > I don't think c) is necessary, block jobs that are owned by a BDS > identified by a node name always require an explicit job ID. It defaults to bdrv_get_device_name() if the job ID is not set, but in your case there's indeed none, so Reviewed-by: Alberto Garcia <berto@igalia.com> Berto
On Mon, May 15, 2017 at 02:39:40PM +0200, Kevin Wolf wrote: > This adds a small test for the image streaming error path for failing > block_job_create(), which would have found the null pointer dereference > in commit a170a91f. > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- > tests/qemu-iotests/030 | 4 ++++ > tests/qemu-iotests/030.out | 4 ++-- > 2 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030 > index e00c11b..feee861 100755 > --- a/tests/qemu-iotests/030 > +++ b/tests/qemu-iotests/030 > @@ -147,6 +147,10 @@ class TestSingleDrive(iotests.QMPTestCase): > result = self.vm.qmp('block-stream', device='nonexistent') > self.assert_qmp(result, 'error/class', 'GenericError') > > + def test_job_id_missing(self): > + result = self.vm.qmp('block-stream', device='mid') > + self.assert_qmp(result, 'error/class', 'GenericError') > + Thanks. FWIW: Reviewed-by: Kashyap Chamarthy <kchamart@redhat.com> [...] -- /kashyap
On Mon, May 15, 2017 at 02:39:40PM +0200, Kevin Wolf wrote: > This adds a small test for the image streaming error path for failing > block_job_create(), which would have found the null pointer dereference > in commit a170a91f. > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- > tests/qemu-iotests/030 | 4 ++++ > tests/qemu-iotests/030.out | 4 ++-- > 2 files changed, 6 insertions(+), 2 deletions(-) Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
On Mon, May 15, 2017 at 02:39:40PM +0200, Kevin Wolf wrote: > This adds a small test for the image streaming error path for failing > block_job_create(), which would have found the null pointer dereference > in commit a170a91f. > > Signed-off-by: Kevin Wolf <kwolf@redhat.com> > --- Reviewed-by: Jeff Cody <jcody@redhat.com> > tests/qemu-iotests/030 | 4 ++++ > tests/qemu-iotests/030.out | 4 ++-- > 2 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/tests/qemu-iotests/030 b/tests/qemu-iotests/030 > index e00c11b..feee861 100755 > --- a/tests/qemu-iotests/030 > +++ b/tests/qemu-iotests/030 > @@ -147,6 +147,10 @@ class TestSingleDrive(iotests.QMPTestCase): > result = self.vm.qmp('block-stream', device='nonexistent') > self.assert_qmp(result, 'error/class', 'GenericError') > > + def test_job_id_missing(self): > + result = self.vm.qmp('block-stream', device='mid') > + self.assert_qmp(result, 'error/class', 'GenericError') > + > > class TestParallelOps(iotests.QMPTestCase): > num_ops = 4 # Number of parallel block-stream operations > diff --git a/tests/qemu-iotests/030.out b/tests/qemu-iotests/030.out > index 84bfd63..391c857 100644 > --- a/tests/qemu-iotests/030.out > +++ b/tests/qemu-iotests/030.out > @@ -1,5 +1,5 @@ > -...................... > +....................... > ---------------------------------------------------------------------- > -Ran 22 tests > +Ran 23 tests > > OK > -- > 1.8.3.1 > >
© 2016 - 2024 Red Hat, Inc.