aboutsummaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
authorAkihiko Odaki <akihiko.odaki@daynix.com>2023-11-20 20:28:02 +0900
committerPaolo Bonzini <pbonzini@redhat.com>2023-11-24 16:21:55 +0100
commite4b9d1999c335ef315376e50da60cb228546aaf4 (patch)
treee0726c6662b2aac53583f2a9d7e9d594820bf23d /audio
parent541069e653b56043afb9e28ee5ce1f146163472e (diff)
downloadqemu-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>
Diffstat (limited to 'audio')
-rw-r--r--audio/audio.c5
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;
}
}