diff --git a/gst/asfdemux/gstasfdemux.c b/gst/asfdemux/gstasfdemux.c index 255a427f4d..b8d48ad686 100644 --- a/gst/asfdemux/gstasfdemux.c +++ b/gst/asfdemux/gstasfdemux.c @@ -3439,7 +3439,12 @@ gst_asf_demux_process_ext_content_desc (GstASFDemux * demux, guint8 * data, break; } case ASF_DEMUX_DATA_TYPE_DWORD:{ - guint uint_val = GST_READ_UINT32_LE (value); + guint uint_val; + + if (value_len < 4) + break; + + uint_val = GST_READ_UINT32_LE (value); /* this is the track number */ g_value_init (&tag_value, G_TYPE_UINT); @@ -3453,7 +3458,12 @@ gst_asf_demux_process_ext_content_desc (GstASFDemux * demux, guint8 * data, } /* Detect 3D */ case ASF_DEMUX_DATA_TYPE_BOOL:{ - gboolean bool_val = GST_READ_UINT32_LE (value); + gboolean bool_val; + + if (value_len < 4) + break; + + bool_val = GST_READ_UINT32_LE (value); if (strncmp ("Stereoscopic", name_utf8, strlen (name_utf8)) == 0) { if (bool_val) {