From cac239ab89db5c37b59f078c734b2f8e5298c389 Mon Sep 17 00:00:00 2001 From: Ravi Kiran K N Date: Thu, 27 Aug 2015 10:28:55 +0530 Subject: [PATCH] smpte: Fix memory leak In gst_smpte_collected(), check upfront if input formats are same or not. This avoids allocation of in1 and in2 buffers and subsequent memory leak when input formats do not match. https://bugzilla.gnome.org/show_bug.cgi?id=754153 --- gst/smpte/gstsmpte.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gst/smpte/gstsmpte.c b/gst/smpte/gstsmpte.c index 722f146a30..696a1b4cdf 100644 --- a/gst/smpte/gstsmpte.c +++ b/gst/smpte/gstsmpte.c @@ -468,6 +468,9 @@ gst_smpte_collected (GstCollectPads * pads, GstSMPTE * smpte) !gst_pad_has_current_caps (smpte->sinkpad2)) goto not_negotiated; + if (!gst_video_info_is_equal (&smpte->vinfo1, &smpte->vinfo2)) + goto input_formats_do_not_match; + if (smpte->send_stream_start) { gchar s_id[32]; @@ -506,9 +509,6 @@ gst_smpte_collected (GstCollectPads * pads, GstSMPTE * smpte) gst_buffer_unmap (in2, &map); } - if (!gst_video_info_is_equal (&smpte->vinfo1, &smpte->vinfo2)) - goto input_formats_do_not_match; - if (smpte->position < smpte->end_position) { outbuf = gst_buffer_new_and_alloc (I420_SIZE (smpte->width, smpte->height));