asfdemux: Handle incomplete header in pull mode
authorEdward Hervey <edward@centricular.com>
Tue, 22 Nov 2016 15:54:26 +0000 (16:54 +0100)
committerEdward Hervey <bilboed@bilboed.com>
Tue, 22 Nov 2016 17:21:46 +0000 (18:21 +0100)
pulling headers is meant to complete as a whole. If we don't have
enough data, it's an error.

Avoids pipeline hangs on corrupted files

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

gst/asfdemux/gstasfdemux.c

index 53dceea..c9d7c37 100644 (file)
@@ -1245,6 +1245,8 @@ parse_failed:
     if (buf)
       gst_buffer_unmap (buf, &map);
     gst_buffer_replace (&buf, NULL);
+    if (flow == ASF_FLOW_NEED_MORE_DATA)
+      flow = GST_FLOW_ERROR;
     *pflow = flow;
     return FALSE;
   }