From: Sebastian Dröge Date: Tue, 31 Jan 2017 11:50:21 +0000 (+0200) Subject: asfdemux: Check that we have enough data available before parsing bool/uint extended... X-Git-Tag: 1.12.2~35 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d21017b52a585f145e8d62781bcc1c5fefc7ee37;p=platform%2Fupstream%2Fgst-plugins-ugly.git asfdemux: Check that we have enough data available before parsing bool/uint extended content descriptors https://bugzilla.gnome.org/show_bug.cgi?id=777955 --- diff --git a/gst/asfdemux/gstasfdemux.c b/gst/asfdemux/gstasfdemux.c index 255a427f..b8d48ad6 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) {