]> code.delx.au - pulseaudio/commitdiff
pacat: Fix memory leak when draining the context.
authorTanu Kaskinen <tanu.kaskinen@digia.com>
Fri, 11 Mar 2011 11:37:49 +0000 (13:37 +0200)
committerTanu Kaskinen <tanu.kaskinen@digia.com>
Fri, 11 Mar 2011 11:37:49 +0000 (13:37 +0200)
src/utils/pacat.c

index 6cd01d211b7fde74bba9e7a1ebd27558ff4b475b..749593ea23cb79128f5603ef5f8456ff10e1bd25 100644 (file)
@@ -105,6 +105,7 @@ static void context_drain_complete(pa_context*c, void *userdata) {
 
 /* Stream draining complete */
 static void stream_drain_complete(pa_stream*s, int success, void *userdata) {
+    pa_operation *o = NULL;
 
     if (!success) {
         pa_log(_("Failed to drain stream: %s"), pa_strerror(pa_context_errno(context)));
@@ -118,9 +119,10 @@ static void stream_drain_complete(pa_stream*s, int success, void *userdata) {
     pa_stream_unref(stream);
     stream = NULL;
 
-    if (!pa_context_drain(context, context_drain_complete, NULL))
+    if (!(o = pa_context_drain(context, context_drain_complete, NULL)))
         pa_context_disconnect(context);
     else {
+        pa_operation_unref(o);
         if (verbose)
             pa_log(_("Draining connection to server."));
     }