From 4d0e59ace29277b2faa5b33c719be9baaa659093 Mon Sep 17 00:00:00 2001 From: Jens Freimann Date: Wed, 20 Nov 2019 16:49:51 +0100 Subject: [PATCH] net/virtio: return error when device_opts arg is NULL This fixes CID 1407222. Fixes: 9711cd0dfc3f ("net/virtio: add failover support") Signed-off-by: Jens Freimann Reviewed-by: Michael S. Tsirkin Signed-off-by: Jason Wang --- hw/net/virtio-net.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index 565dea0b93..3c31471026 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -2880,9 +2880,12 @@ static int virtio_net_primary_should_be_hidden(DeviceListener *listener, QemuOpts *device_opts) { VirtIONet *n = container_of(listener, VirtIONet, primary_listener); - bool match_found; - bool hide; + bool match_found = false; + bool hide = false; + if (!device_opts) { + return -1; + } n->primary_device_dict = qemu_opts_to_qdict(device_opts, n->primary_device_dict); if (n->primary_device_dict) { @@ -2890,7 +2893,7 @@ static int virtio_net_primary_should_be_hidden(DeviceListener *listener, n->standby_id = g_strdup(qdict_get_try_str(n->primary_device_dict, "failover_pair_id")); } - if (device_opts && g_strcmp0(n->standby_id, n->netclient_name) == 0) { + if (g_strcmp0(n->standby_id, n->netclient_name) == 0) { match_found = true; } else { match_found = false;