diff options
author | Akihiko Odaki <akihiko.odaki@daynix.com> | 2023-11-20 20:28:02 +0900 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2023-11-24 16:21:55 +0100 |
commit | e4b9d1999c335ef315376e50da60cb228546aaf4 (patch) | |
tree | e0726c6662b2aac53583f2a9d7e9d594820bf23d | |
parent | 541069e653b56043afb9e28ee5ce1f146163472e (diff) | |
download | qemu-e4b9d1999c335ef315376e50da60cb228546aaf4.zip qemu-e4b9d1999c335ef315376e50da60cb228546aaf4.tar.gz qemu-e4b9d1999c335ef315376e50da60cb228546aaf4.tar.bz2 |
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>
-rw-r--r-- | audio/audio.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/audio/audio.c b/audio/audio.c index f91e05b..8d1e4ad 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -1758,12 +1758,15 @@ static AudioState *audio_init(Audiodev *dev, Error **errp) goto out; } s->dev = dev = e->dev; + QSIMPLEQ_REMOVE_HEAD(&default_audiodevs, next); + g_free(e); drvname = AudiodevDriver_str(dev->driver); driver = audio_driver_lookup(drvname); if (!audio_driver_init(s, driver, dev, NULL)) { break; } - QSIMPLEQ_REMOVE_HEAD(&default_audiodevs, next); + qapi_free_Audiodev(dev); + s->dev = NULL; } } |