summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2019-04-08 17:30:03 +0200
committerKevin Wolf <kwolf@redhat.com>2019-04-08 17:42:06 +0200
commitab63817119b03b95f7dce6fae036e6d063ad63fb (patch)
tree89964ebab615f03f7562246854d4ae52a26bd959
parent3f48686faca1856d74c244b151da1d3a521ef967 (diff)
downloadfocaccia-qemu-ab63817119b03b95f7dce6fae036e6d063ad63fb.tar.gz
focaccia-qemu-ab63817119b03b95f7dce6fae036e6d063ad63fb.zip
hmp: Fix drive_add ... format=help crash
drive_new() returns null without setting an error when it provided
help.  add_init_drive() assumes null means failure, and crashes trying
to report a null error.

Fixes: c4f26c9f37ce511e5fe629c21c180dc6eb7c5a25
Cc: qemu-stable@nongnu.org
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
-rw-r--r--device-hotplug.c2
-rw-r--r--tests/test-hmp.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/device-hotplug.c b/device-hotplug.c
index 6090d5f1e9..6153259d71 100644
--- a/device-hotplug.c
+++ b/device-hotplug.c
@@ -48,7 +48,7 @@ static DriveInfo *add_init_drive(const char *optstr)
 
     mc = MACHINE_GET_CLASS(current_machine);
     dinfo = drive_new(opts, mc->block_default_type, &err);
-    if (!dinfo) {
+    if (err) {
         error_report_err(err);
         qemu_opts_del(opts);
         return NULL;
diff --git a/tests/test-hmp.c b/tests/test-hmp.c
index 8c49d2fdf1..54a01824dc 100644
--- a/tests/test-hmp.c
+++ b/tests/test-hmp.c
@@ -31,6 +31,7 @@ static const char *hmp_cmds[] = {
     "cpu 0",
     "device_add ?",
     "device_add usb-mouse,id=mouse1",
+    "drive_add ignored format=help",
     "mouse_button 7",
     "mouse_move 10 10",
     "mouse_button 0",