]> git.proxmox.com Git - mirror_qemu.git/commit
rbd: Fix to cleanly reject -drive without pool or image
authorMarkus Armbruster <armbru@redhat.com>
Tue, 28 Mar 2017 08:56:00 +0000 (10:56 +0200)
committerJeff Cody <jcody@redhat.com>
Tue, 28 Mar 2017 13:53:16 +0000 (09:53 -0400)
commitf51c363c2ba97af02fedaeb7eaad68f433007382
tree717843fc70265da3678882fa97811dd81630c202
parenteb87203b646c27938ecb11d7766c5c98f836241f
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>
block/rbd.c