]> git.sesse.net Git - vlc/commitdiff
demux: ogg: check packets header size (fix #13875)
authorFrancois Cartegnie <fcvlcdev@free.fr>
Thu, 12 Feb 2015 10:17:22 +0000 (11:17 +0100)
committerFrancois Cartegnie <fcvlcdev@free.fr>
Thu, 12 Feb 2015 10:26:51 +0000 (11:26 +0100)
modules/demux/ogg.c

index 6e0a500806caa782847fb018270f53a5d494e5ad..8326b4e0ef35fdbbf59332ff1730990f2c4bd894 100644 (file)
@@ -1408,6 +1408,13 @@ static void Ogg_DecodePacket( demux_t *p_demux,
         i_header_len = (*p_oggpacket->packet & PACKET_LEN_BITS01) >> 6;
         i_header_len |= (*p_oggpacket->packet & PACKET_LEN_BITS2) << 1;
 
+        if( i_header_len >= p_oggpacket->bytes )
+        {
+            msg_Dbg( p_demux, "discarding invalid packet" );
+            block_Release( p_block );
+            return;
+        }
+
         if( p_stream->fmt.i_codec == VLC_CODEC_SUBT)
         {
             /* But with subtitles we need to retrieve the duration first */