rtpvp8depay: Check available bytes before copy
authorStian Selnes <stian@pexip.com>
Tue, 21 Jul 2015 11:31:05 +0000 (13:31 +0200)
committerTim-Philipp Müller <tim@centricular.com>
Tue, 21 Jul 2015 12:14:01 +0000 (13:14 +0100)
Need to check that the number of bytes we want to copy from the adapter
actually is available and handle the error case gracefully. This error
may happen if malformed packets are received and we don't have a
complete frame.

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

gst/rtp/gstrtpvp8depay.c

index 128bb7d..f87a80f 100644 (file)
@@ -173,6 +173,8 @@ gst_rtp_vp8_depay_process (GstRTPBaseDepayload * depay, GstRTPBuffer * rtp)
     GstBuffer *out;
     guint8 header[10];
 
+    if (gst_adapter_available (self->adapter) < 10)
+      goto too_small;
     gst_adapter_copy (self->adapter, &header, 0, 10);
 
     out = gst_adapter_take_buffer (self->adapter,