flvdemux: Don't pull passed the EOS
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Sat, 23 Sep 2017 19:44:09 +0000 (15:44 -0400)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Fri, 6 Oct 2017 01:20:19 +0000 (21:20 -0400)
When a truncated FLV is provided and processed in pull mode, we
may endup trying to pull passed EOS, causing a rather confusing
warning as the pull offset is an integer overflow.

https://bugzilla.gnome.org/show_bug.cgi?id=787795

gst/flv/gstflvdemux.c

index 2ac868b..4fc2bad 100644 (file)
@@ -2570,6 +2570,9 @@ gst_flv_demux_get_metadata (GstFlvDemux * demux)
   gst_buffer_unref (buffer);
   buffer = NULL;
 
+  if (G_UNLIKELY (offset < tag_size))
+    goto exit;
+
   offset -= tag_size;
   if (GST_FLOW_OK != gst_flv_demux_pull_range (demux, demux->sinkpad, offset,
           12, &buffer))