diff options
author | Markus Armbruster <armbru@redhat.com> | 2017-03-28 10:56:00 +0200 |
---|---|---|
committer | Jeff Cody <jcody@redhat.com> | 2017-03-28 09:53:16 -0400 |
commit | f51c363c2ba97af02fedaeb7eaad68f433007382 (patch) | |
tree | 717843fc70265da3678882fa97811dd81630c202 /block/sheepdog.c | |
parent | eb87203b646c27938ecb11d7766c5c98f836241f (diff) | |
download | qemu-f51c363c2ba97af02fedaeb7eaad68f433007382.zip qemu-f51c363c2ba97af02fedaeb7eaad68f433007382.tar.gz qemu-f51c363c2ba97af02fedaeb7eaad68f433007382.tar.bz2 |
rbd: Fix to cleanly reject -drive without pool or image
qemu_rbd_open() neglects to check pool and image are present. Missing
image is caught by rbd_open(), but missing pool crashes. Reproducer:
$ qemu-system-x86_64 -nodefaults -drive driver=rbd,id=rbd,image=i,...
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_M_construct null not valid
Aborted (core dumped)
where ... is a working server.0.{host,port} configuration.
Doesn't affect -drive with file=..., because qemu_rbd_parse_filename()
always sets both pool and image.
Doesn't affect -blockdev, because pool and image are mandatory in the
QAPI schema.
Fix by adding the missing checks.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Jeff Cody <jcody@redhat.com>
Message-id: 1490691368-32099-3-git-send-email-armbru@redhat.com
Signed-off-by: Jeff Cody <jcody@redhat.com>
Diffstat (limited to 'block/sheepdog.c')
0 files changed, 0 insertions, 0 deletions