aboutsummaryrefslogtreecommitdiff
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
parent541069e653b56043afb9e28ee5ce1f146163472e (diff)
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.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/audio/audio.c b/audio/audio.c
index f91e05b72c..8d1e4ad922 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;
}
}