avidemux: ensure 0-padding when correcting dubious list size
This commit is contained in:
parent
ee8aef2901
commit
4cd2dac1da
@ -1893,14 +1893,16 @@ gst_avi_demux_expose_streams (GstAviDemux * avi, gboolean force)
|
|||||||
static inline void
|
static inline void
|
||||||
gst_avi_demux_roundup_list (GstAviDemux * avi, GstBuffer ** buf)
|
gst_avi_demux_roundup_list (GstAviDemux * avi, GstBuffer ** buf)
|
||||||
{
|
{
|
||||||
if (G_UNLIKELY (GST_BUFFER_SIZE (*buf) & 1)) {
|
gint size = GST_BUFFER_SIZE (*buf);
|
||||||
|
|
||||||
|
if (G_UNLIKELY (size & 1)) {
|
||||||
GstBuffer *obuf;
|
GstBuffer *obuf;
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (avi, "rounding up dubious list size %d",
|
GST_DEBUG_OBJECT (avi, "rounding up dubious list size %d", size);
|
||||||
GST_BUFFER_SIZE (*buf));
|
obuf = gst_buffer_new_and_alloc (size + 1);
|
||||||
obuf = gst_buffer_new_and_alloc (GST_BUFFER_SIZE (*buf) + 1);
|
memcpy (GST_BUFFER_DATA (obuf), GST_BUFFER_DATA (*buf), size);
|
||||||
memcpy (GST_BUFFER_DATA (obuf), GST_BUFFER_DATA (*buf),
|
/* assume 0 padding, at least makes outcome deterministic */
|
||||||
GST_BUFFER_SIZE (*buf));
|
(GST_BUFFER_DATA (obuf))[size] = 0;
|
||||||
gst_buffer_replace (buf, obuf);
|
gst_buffer_replace (buf, obuf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user