[alsa-devel] [PATCH] alsa-plugins: Fix destruction order on failure

Lennart Poettering mznyfn at 0pointer.de
Thu Sep 25 21:02:32 CEST 2008


Heya!

If we failure we should make sure the event loop thread is not running
and hence not accessing our source/sink strings before we free those
strings.
---
 pulse/ctl_pulse.c |    7 ++-----
 1 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/pulse/ctl_pulse.c b/pulse/ctl_pulse.c
index 0b10628..8a5546c 100644
--- a/pulse/ctl_pulse.c
+++ b/pulse/ctl_pulse.c
@@ -728,14 +728,11 @@ SND_CTL_PLUGIN_DEFINE_FUNC(pulse)
 	return 0;
 
 error:
-	if (ctl->source)
-		free(ctl->source);
-	if (ctl->sink)
-		free(ctl->sink);
-
 	if (ctl->p)
 		pulse_free(ctl->p);
 
+	free(ctl->source);
+	free(ctl->sink);
 	free(ctl);
 
 	return err;
-- 
1.6.0.1



Lennart

-- 
Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net         ICQ# 11060553
http://0pointer.net/lennart/           GnuPG 0x1A015CC4


More information about the Alsa-devel mailing list