vlc | branch: master | Francois Cartegnie <[email protected]> | Wed Jun  4 
16:47:24 2014 +0200| [36bdc4add90d04e90a168d0fd011c42369a297a1] | committer: 
Francois Cartegnie

demux: mp4: do stsd v2 checks

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=36bdc4add90d04e90a168d0fd011c42369a297a1
---

 modules/demux/mp4/libmp4.c |   13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/modules/demux/mp4/libmp4.c b/modules/demux/mp4/libmp4.c
index 8685697..8996cd7 100644
--- a/modules/demux/mp4/libmp4.c
+++ b/modules/demux/mp4/libmp4.c
@@ -1668,6 +1668,19 @@ static int MP4_ReadBox_sample_soun( stream_t *p_stream, 
MP4_Box_t *p_box )
         int64_t dummy;
         uint32_t i_channel;
 
+        /* Checks */
+        if ( p_box->data.p_sample_soun->i_channelcount != 0x3  ||
+             p_box->data.p_sample_soun->i_samplesize != 0x0010 ||
+             p_box->data.p_sample_soun->i_predefined != 0xFFFE ||
+             p_box->data.p_sample_soun->i_reserved3 != 0x0     ||
+             p_box->data.p_sample_soun->i_sampleratehi != 0x1  ||//65536
+             p_box->data.p_sample_soun->i_sampleratelo != 0x0 )  //remainder
+        {
+            msg_Err( p_stream, "invalid stsd V2 box" );
+            MP4_READBOX_EXIT( 0 );
+        }
+        /* !Checks */
+
         MP4_GET4BYTES( p_box->data.p_sample_soun->i_sample_per_packet );
         MP4_GET8BYTES( dummy );
         memcpy( &f_sample_rate, &dummy, 8 );

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to