splitmux: fix memory leak
authorLuis de Bethencourt <luis.bg@samsung.com>
Tue, 10 Feb 2015 13:29:32 +0000 (13:29 +0000)
committerLuis de Bethencourt <luis.bg@samsung.com>
Tue, 10 Feb 2015 13:33:09 +0000 (13:33 +0000)
If execution goes to the beach in line 981, buf_info goes out of scope without
the memory being free'd. Handle this case.

CID #1268403

gst/multifile/gstsplitmuxsink.c

index 9034a19..8f39675 100644 (file)
@@ -909,7 +909,7 @@ handle_mq_input (GstPad * pad, GstPadProbeInfo * info, MqStreamCtx * ctx)
 {
   GstSplitMuxSink *splitmux = ctx->splitmux;
   GstBuffer *buf;
-  MqStreamBuf *buf_info;
+  MqStreamBuf *buf_info = NULL;
   GstClockTime ts;
   gboolean loop_again;
   gboolean keyframe = FALSE;
@@ -1090,9 +1090,13 @@ handle_mq_input (GstPad * pad, GstPadProbeInfo * info, MqStreamCtx * ctx)
   GST_LOG_OBJECT (pad, "Returning to queue buffer %" GST_PTR_FORMAT
       " run ts %" GST_TIME_FORMAT, buf, GST_TIME_ARGS (ctx->in_running_time));
 
-beach:
   GST_SPLITMUX_UNLOCK (splitmux);
+  return GST_PAD_PROBE_PASS;
 
+beach:
+  GST_SPLITMUX_UNLOCK (splitmux);
+  if (buf_info)
+    mq_stream_buf_free (buf_info);
   return GST_PAD_PROBE_PASS;
 }