Markus Armbruster <arm...@redhat.com> writes: > Max Reitz <mre...@redhat.com> writes: > >> On 27.03.2017 18:10, Max Reitz wrote: >>> On 27.03.2017 15:26, Markus Armbruster wrote: >>>> qemu_rbd_open() neglects to check pool and image are present. >>>> Reproducer: >>>> >>>> $ qemu-system-x86_64 -nodefaults -drive if=none,driver=rbd,pool=p >>>> Segmentation fault (core dumped) >>>> $ qemu-system-x86_64 -nodefaults -drive if=none,driver=rbd,image=i >>>> qemu-system-x86_64: -drive if=none,driver=rbd,image=i: error opening >>>> pool (null) >>>> >>>> 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 <arm...@redhat.com> >>>> Reviewed-by: Eric Blake <ebl...@redhat.com> >>>> --- >>>> block/rbd.c | 10 +++++++--- >>>> 1 file changed, 7 insertions(+), 3 deletions(-) >>> >>> Reviewed-by: Max Reitz <mre...@redhat.com> >> >> That said, don't we have a similar issue with qemu_rbd_create()? It too >> doesn't check whether those options are given but I guess they're just >> as mandatory. > > Looks like it. I'll try to stick a fix into v4.
Hmm, ignorant question: how can I reach qemu_rbd_create() without going through qemu_rbd_parse_filename()?