From 4f7d1a2ed57d2f6b2a1f3505292e1545a274ca08 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Wed, 2 Dec 2009 11:21:22 -0300 Subject: [PATCH] lame: Avoid crash when seeking before negotiating lame's 'lgv' variable is only initialized when the caps is negotiated, whenever a seek happens before that, it would attempt to call a function on an empty pointer, causing the crash. Fixes #603515 --- ext/lame/gstlame.c | 12 +++++++----- ext/lame/gstlamemp3enc.c | 12 +++++++----- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/ext/lame/gstlame.c b/ext/lame/gstlame.c index 1849fd2..9344839 100644 --- a/ext/lame/gstlame.c +++ b/ext/lame/gstlame.c @@ -1024,11 +1024,13 @@ gst_lame_sink_event (GstPad * pad, GstEvent * event) GST_DEBUG_OBJECT (lame, "handling FLUSH stop event"); - /* clear buffers */ - mp3_buffer_size = 7200; - mp3_data = g_malloc (mp3_buffer_size); - lame_encode_flush (lame->lgf, mp3_data, mp3_buffer_size); - g_free (mp3_data); + if (lame->lgf) { + /* clear buffers if we already have lame set up */ + mp3_buffer_size = 7200; + mp3_data = g_malloc (mp3_buffer_size); + lame_encode_flush (lame->lgf, mp3_data, mp3_buffer_size); + g_free (mp3_data); + } ret = gst_pad_push_event (lame->srcpad, event); break; diff --git a/ext/lame/gstlamemp3enc.c b/ext/lame/gstlamemp3enc.c index 38b3b63..876ad0a 100644 --- a/ext/lame/gstlamemp3enc.c +++ b/ext/lame/gstlamemp3enc.c @@ -586,11 +586,13 @@ gst_lamemp3enc_sink_event (GstPad * pad, GstEvent * event) GST_DEBUG_OBJECT (lame, "handling FLUSH stop event"); - /* clear buffers */ - mp3_buffer_size = 7200; - mp3_data = g_malloc (mp3_buffer_size); - lame_encode_flush (lame->lgf, mp3_data, mp3_buffer_size); - g_free (mp3_data); + if (lame->lgf) { + /* clear buffers if we already have lame set up */ + mp3_buffer_size = 7200; + mp3_data = g_malloc (mp3_buffer_size); + lame_encode_flush (lame->lgf, mp3_data, mp3_buffer_size); + g_free (mp3_data); + } ret = gst_pad_push_event (lame->srcpad, event); break; -- 2.7.4