From 9f4b71b2a71fd3f2b6c82ed74a6273dfbca5a3eb Mon Sep 17 00:00:00 2001 From: Vincent Penquerc'h Date: Wed, 11 Jan 2012 16:17:42 +0000 Subject: [PATCH] oggdemux: fix push mode chain leak When I first implemented push mode seeking, I removed the chain freeing there as it could be used later. The current code does not seem to do that though, so I'm restoring the previous freeing, which plugs the leak while apparently not reintroducing use of freed data with chained and normal files, both with gst-launch playbin2 and Totem. --- ext/ogg/gstoggdemux.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c index 6afcae6432..5baef83518 100644 --- a/ext/ogg/gstoggdemux.c +++ b/ext/ogg/gstoggdemux.c @@ -2436,10 +2436,12 @@ gst_ogg_demux_deactivate_current_chain (GstOggDemux * ogg) pad->added = FALSE; } - /* With push mode seeking implemented, we can now seek back to the chain, - so we do not destroy it */ - GST_DEBUG_OBJECT (ogg, "Resetting current chain"); - ogg->current_chain = NULL; + + /* if we cannot seek back to the chain, we can destroy the chain + * completely */ + if (!ogg->pullmode) { + gst_ogg_chain_free (chain); + } return TRUE; }