audio: Free consumed default audio devices

Failed default audio devices were removed from the list but not freed,
and that made LeakSanitizer sad. Free default audio devices as they are
consumed.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Acked-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-ID: <20231120112804.9736-1-akihiko.odaki@daynix.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Akihiko Odaki 2023-11-20 20:28:02 +09:00 committed by Paolo Bonzini
parent 541069e653
commit e4b9d1999c

View File

@ -1758,12 +1758,15 @@ static AudioState *audio_init(Audiodev *dev, Error **errp)
goto out; goto out;
} }
s->dev = dev = e->dev; s->dev = dev = e->dev;
QSIMPLEQ_REMOVE_HEAD(&default_audiodevs, next);
g_free(e);
drvname = AudiodevDriver_str(dev->driver); drvname = AudiodevDriver_str(dev->driver);
driver = audio_driver_lookup(drvname); driver = audio_driver_lookup(drvname);
if (!audio_driver_init(s, driver, dev, NULL)) { if (!audio_driver_init(s, driver, dev, NULL)) {
break; break;
} }
QSIMPLEQ_REMOVE_HEAD(&default_audiodevs, next); qapi_free_Audiodev(dev);
s->dev = NULL;
} }
} }