From: Thiago Santos Date: Wed, 2 Dec 2009 14:21:22 +0000 (-0300) Subject: lame: Avoid crash when seeking before negotiating X-Git-Tag: 1.16.2~901^2~44 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4f7d1a2ed57d2f6b2a1f3505292e1545a274ca08;p=platform%2Fupstream%2Fgst-plugins-good.git 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 --- 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;