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
{
GstSplitMuxSink *splitmux = ctx->splitmux;
GstBuffer *buf;
{
GstSplitMuxSink *splitmux = ctx->splitmux;
GstBuffer *buf;
+ MqStreamBuf *buf_info = NULL;
GstClockTime ts;
gboolean loop_again;
gboolean keyframe = FALSE;
GstClockTime ts;
gboolean loop_again;
gboolean keyframe = FALSE;
GST_LOG_OBJECT (pad, "Returning to queue buffer %" GST_PTR_FORMAT
" run ts %" GST_TIME_FORMAT, buf, GST_TIME_ARGS (ctx->in_running_time));
GST_LOG_OBJECT (pad, "Returning to queue buffer %" GST_PTR_FORMAT
" run ts %" GST_TIME_FORMAT, buf, GST_TIME_ARGS (ctx->in_running_time));
GST_SPLITMUX_UNLOCK (splitmux);
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;
}
return GST_PAD_PROBE_PASS;
}