|
From: <sl...@ke...> - 2009-01-14 15:37:33
|
CVS Root: /cvs/gstreamer
Module: gst-plugins-good
Changes by: slomo
Date: Wed Jan 14 2009 15:37:22 UTC
Log message:
Patch by: Lennart Poettering <lennart at poettering dot net>
* ext/pulse/pulseprobe.c: (gst_pulseprobe_new),
(gst_pulseprobe_free):
Fix refcount loop, resulting in a thread leak. Fixes bug #567746.
Modified files:
. : ChangeLog
ext/pulse : pulseprobe.c
Links:
http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-good/ChangeLog.diff?r1=1.3897&r2=1.3898
http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-good/ext/pulse/pulseprobe.c.diff?r1=1.3&r2=1.4
====Begin Diffs====
Index: ChangeLog
===================================================================
RCS file: /cvs/gstreamer/gst-plugins-good/ChangeLog,v
retrieving revision 1.3897
retrieving revision 1.3898
diff -u -d -r1.3897 -r1.3898
--- ChangeLog 14 Jan 2009 10:46:51 -0000 1.3897
+++ ChangeLog 14 Jan 2009 15:37:05 -0000 1.3898
@@ -1,5 +1,13 @@
2009-01-14 Sebastian Dröge <seb...@co...>
+ Patch by: Lennart Poettering <lennart at poettering dot net>
+
+ * ext/pulse/pulseprobe.c: (gst_pulseprobe_new),
+ (gst_pulseprobe_free):
+ Fix refcount loop, resulting in a thread leak. Fixes bug #567746.
+2009-01-14 Sebastian Dröge <seb...@co...>
* gst/spectrum/Makefile.am:
* gst/spectrum/README:
* gst/spectrum/gstspectrum.c: (gst_spectrum_base_init),
Index: pulseprobe.c
RCS file: /cvs/gstreamer/gst-plugins-good/ext/pulse/pulseprobe.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- pulseprobe.c 20 Aug 2008 17:46:47 -0000 1.3
+++ pulseprobe.c 14 Jan 2009 15:37:07 -0000 1.4
@@ -263,7 +263,7 @@
GstPulseProbe *c = NULL;
c = g_new (GstPulseProbe, 1);
- c->object = g_object_ref (object);
+ c->object = object; /* We don't inc the ref counter here to avoid a ref loop */
c->server = g_strdup (server);
c->enumerate_sinks = sinks;
c->enumerate_sources = sources;
@@ -293,8 +293,6 @@
g_list_foreach (c->devices, (GFunc) g_free, NULL);
g_list_free (c->devices);
- g_object_unref (c->object);
-
g_free (c);
}
|