On 25/11/19 16:40, Jason Wang wrote:
> From: Jens Freimann <jfreimann@redhat.com>
>
> This fixes CID 1407222.
>
> Fixes: 9711cd0dfc3f ("net/virtio: add failover support")
> Signed-off-by: Jens Freimann <jfreimann@redhat.com>
> Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Jason Wang <jasowang@redhat.com>
> ---
> 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 565dea0..3c31471 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;
>
It can't be NULL though, can it? It is called from a qemu_foreach_opt
callback on device_opts itself. This can be "re-fixed" in 5.0 though,
no hurry.
Paolo