From 4e6b917ba39ec0d8c5ff82a12f6c2d4db6907f5d Mon Sep 17 00:00:00 2001 From: Vincent Penquerc'h Date: Thu, 9 Apr 2015 12:59:38 +0100 Subject: [PATCH] audiobasesrc: fix ring buffer leak on open failure --- gst-libs/gst/audio/gstaudiobasesrc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gst-libs/gst/audio/gstaudiobasesrc.c b/gst-libs/gst/audio/gstaudiobasesrc.c index 51bb1e7..b529b76 100644 --- a/gst-libs/gst/audio/gstaudiobasesrc.c +++ b/gst-libs/gst/audio/gstaudiobasesrc.c @@ -1140,8 +1140,13 @@ gst_audio_base_src_change_state (GstElement * element, src->ringbuffer = rb; GST_OBJECT_UNLOCK (src); - if (!gst_audio_ring_buffer_open_device (src->ringbuffer)) + if (!gst_audio_ring_buffer_open_device (src->ringbuffer)) { + GST_OBJECT_LOCK (src); + gst_object_unparent (GST_OBJECT_CAST (src->ringbuffer)); + src->ringbuffer = NULL; + GST_OBJECT_UNLOCK (src); goto open_failed; + } break; } case GST_STATE_CHANGE_READY_TO_PAUSED: -- 2.7.4