diff options
author | Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> | 2012-01-11 16:17:42 +0000 |
---|---|---|
committer | Vincent Penquerc'h <vincent.penquerch@collabora.co.uk> | 2012-01-11 16:17:42 +0000 |
commit | 9f4b71b2a71fd3f2b6c82ed74a6273dfbca5a3eb (patch) | |
tree | c146a51157efff71df430092f177bb44575f24f6 | |
parent | 426f991b522e1fe63d30e3bf3e1a9b587bcaeca9 (diff) |
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.
-rw-r--r-- | ext/ogg/gstoggdemux.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c index 6afcae643..5baef8351 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; } |