vlc | branch: master | Thomas Guillem <[email protected]> | Wed Dec 21 16:20:17 2016 +0100| [6fca9f1489ff97fb5722baceeffa451efffddae3] | committer: Thomas Guillem
demux/mp4: fix null-deref when FromCharset() fails FromCharset() can return NULL in case of error. This fixes a regression introduced by 810539f. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6fca9f1489ff97fb5722baceeffa451efffddae3 --- modules/demux/mp4/meta.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/modules/demux/mp4/meta.c b/modules/demux/mp4/meta.c index f29200e..2510c16 100644 --- a/modules/demux/mp4/meta.c +++ b/modules/demux/mp4/meta.c @@ -287,23 +287,26 @@ static int ExtractIntlStrings( vlc_meta_t *p_meta, MP4_Box_t *p_box ) } char* data = FromCharset( charset, p_peek, i_len ); - if( meta_type ) + if( data ) { - vlc_meta_Set( p_meta_intl, *meta_type, data ); + if( meta_type ) + { + vlc_meta_Set( p_meta_intl, *meta_type, data ); - meta_key = vlc_meta_TypeToLocalizedString( *meta_type ); - meta_type = NULL; - } - else - { - char* key; - if( asprintf( &key, "%s (%s)", meta_key, charset+11 ) != -1 ) + meta_key = vlc_meta_TypeToLocalizedString( *meta_type ); + meta_type = NULL; + } + else { - vlc_meta_AddExtra( p_meta_intl, key, data ); - free( key ); + char* key; + if( asprintf( &key, "%s (%s)", meta_key, charset+11 ) != -1 ) + { + vlc_meta_AddExtra( p_meta_intl, key, data ); + free( key ); + } } + free( data ); } - free( data ); p_peek += i_len; i_read -= i_len; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
