Commit 7b053f54 authored by Derk-Jan Hartman's avatar Derk-Jan Hartman

* Don't crash if the hdlr in a mov has no name.

* spelling correction and debug for out of bound child boxes.
parent 1bccb7df
...@@ -225,7 +225,7 @@ int MP4_ReadBoxCommon( stream_t *p_stream, MP4_Box_t *p_box ) ...@@ -225,7 +225,7 @@ int MP4_ReadBoxCommon( stream_t *p_stream, MP4_Box_t *p_box )
/***************************************************************************** /*****************************************************************************
* MP4_NextBox : Go to the next box * MP4_NextBox : Go to the next box
***************************************************************************** *****************************************************************************
* if p_box == NULL, go to the next box in witch we are( at the begining ). * if p_box == NULL, go to the next box in which we are( at the begining ).
*****************************************************************************/ *****************************************************************************/
static int MP4_NextBox( stream_t *p_stream, MP4_Box_t *p_box ) static int MP4_NextBox( stream_t *p_stream, MP4_Box_t *p_box )
{ {
...@@ -248,6 +248,7 @@ static int MP4_NextBox( stream_t *p_stream, MP4_Box_t *p_box ) ...@@ -248,6 +248,7 @@ static int MP4_NextBox( stream_t *p_stream, MP4_Box_t *p_box )
if( p_box->i_size + p_box->i_pos >= if( p_box->i_size + p_box->i_pos >=
p_box->p_father->i_size + p_box->p_father->i_pos ) p_box->p_father->i_size + p_box->p_father->i_pos )
{ {
msg_Dbg( p_stream, "out of bound child" );
return 0; /* out of bound */ return 0; /* out of bound */
} }
} }
...@@ -582,7 +583,10 @@ static int MP4_ReadBox_hdlr( stream_t *p_stream, MP4_Box_t *p_box ) ...@@ -582,7 +583,10 @@ static int MP4_ReadBox_hdlr( stream_t *p_stream, MP4_Box_t *p_box )
MP4_GET4BYTES( i_reserved ); MP4_GET4BYTES( i_reserved );
MP4_GET4BYTES( i_reserved ); MP4_GET4BYTES( i_reserved );
MP4_GET4BYTES( i_reserved ); MP4_GET4BYTES( i_reserved );
p_box->data.p_hdlr->psz_name = NULL;
if( i_read > 0 )
{
p_box->data.p_hdlr->psz_name = calloc( sizeof( char ), i_read + 1 ); p_box->data.p_hdlr->psz_name = calloc( sizeof( char ), i_read + 1 );
/* Yes, I love .mp4 :( */ /* Yes, I love .mp4 :( */
...@@ -602,10 +606,10 @@ static int MP4_ReadBox_hdlr( stream_t *p_stream, MP4_Box_t *p_box ) ...@@ -602,10 +606,10 @@ static int MP4_ReadBox_hdlr( stream_t *p_stream, MP4_Box_t *p_box )
memcpy( p_box->data.p_hdlr->psz_name, p_peek, i_read ); memcpy( p_box->data.p_hdlr->psz_name, p_peek, i_read );
p_box->data.p_hdlr->psz_name[i_read] = '\0'; p_box->data.p_hdlr->psz_name[i_read] = '\0';
} }
}
#ifdef MP4_VERBOSE #ifdef MP4_VERBOSE
msg_Dbg( p_stream, "read box: \"hdlr\" hanler type %4.4s name %s", msg_Dbg( p_stream, "read box: \"hdlr\" handler type %4.4s name %s",
(char*)&p_box->data.p_hdlr->i_handler_type, (char*)&p_box->data.p_hdlr->i_handler_type,
p_box->data.p_hdlr->psz_name ); p_box->data.p_hdlr->psz_name );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment