rtpdec_xiph: Drop RTP packets that come in without a prior fragment start marker.
authorJosh Allmann <joshua.allmann@gmail.com>
Tue, 27 Jul 2010 08:16:03 +0000 (08:16 +0000)
committerMartin Storsjö <martin@martin.st>
Tue, 27 Jul 2010 08:16:03 +0000 (08:16 +0000)
This can avoid segfaults in some cases.

Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 24537 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/rtpdec_xiph.c

index 4c9cad2..bcf583f 100644 (file)
@@ -172,6 +172,11 @@ static int xiph_handle_packet(AVFormatContext * ctx,
             av_log(ctx, AV_LOG_ERROR, "RTP timestamps don't match!\n");
             return AVERROR_INVALIDDATA;
         }
+        if (!data->fragment) {
+            av_log(ctx, AV_LOG_WARNING,
+                   "Received packet without a start fragment; dropping.\n");
+            return AVERROR(EAGAIN);
+        }
 
         // copy data to fragment buffer
         put_buffer(data->fragment, buf, pkt_len);