[vlc-commits] asx: fix use-after-free
Rémi Denis-Courmont
git at videolan.org
Wed Jul 30 23:13:56 CEST 2014
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Thu Jul 31 00:13:01 2014 +0300| [b430a05ea91872b7eb1a5efae1ce88ee3d799bb3] | committer: Rémi Denis-Courmont
asx: fix use-after-free
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b430a05ea91872b7eb1a5efae1ce88ee3d799bb3
---
modules/demux/playlist/asx.c | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/modules/demux/playlist/asx.c b/modules/demux/playlist/asx.c
index 79a841d..099cc5e 100644
--- a/modules/demux/playlist/asx.c
+++ b/modules/demux/playlist/asx.c
@@ -210,11 +210,11 @@ static void ProcessEntry( int *pi_n_entry, xml_reader_t *p_xml_reader,
/* Metadata Node */
if( !strncasecmp( psz_node, "TITLE", 5 ) )
ReadElement( p_xml_reader, &psz_title );
- if( !strncasecmp( psz_node, "AUTHOR", 6 ) )
+ else if( !strncasecmp( psz_node, "AUTHOR", 6 ) )
ReadElement( p_xml_reader, &psz_artist );
- if( !strncasecmp( psz_node, "COPYRIGHT", 9 ) )
+ else if( !strncasecmp( psz_node, "COPYRIGHT", 9 ) )
ReadElement( p_xml_reader, &psz_copyright );
- if( !strncasecmp( psz_node,"MOREINFO", 8 ) )
+ else if( !strncasecmp( psz_node,"MOREINFO", 8 ) )
{
do
{
@@ -228,13 +228,13 @@ static void ProcessEntry( int *pi_n_entry, xml_reader_t *p_xml_reader,
psz_moreinfo = strdup( psz_node );
resolve_xml_special_chars( psz_moreinfo );
}
- if( !strncasecmp( psz_node, "ABSTRACT", 8 ) )
+ else if( !strncasecmp( psz_node, "ABSTRACT", 8 ) )
ReadElement( p_xml_reader, &psz_description );
- if( !strncasecmp( psz_node, "DURATION", 8 ) )
+ else if( !strncasecmp( psz_node, "DURATION", 8 ) )
i_duration = ParseTime( p_xml_reader );
- if( !strncasecmp( psz_node, "STARTTIME", 9 ) )
+ else if( !strncasecmp( psz_node, "STARTTIME", 9 ) )
i_start = ParseTime( p_xml_reader );
-
+ else
/* Reference Node */
/* All ref node will be converted into an entry */
if( !strncasecmp( psz_node, "REF", 3 ) )
@@ -361,17 +361,17 @@ static int Demux( demux_t *p_demux )
ReadElement( p_xml_reader, &psz_title_asx );
input_item_SetTitle( p_current_input, psz_title_asx );
}
- if( !strncasecmp( psz_node, "AUTHOR", 6 ) )
+ else if( !strncasecmp( psz_node, "AUTHOR", 6 ) )
{
ReadElement( p_xml_reader, &psz_txt );
input_item_SetArtist( p_current_input, psz_txt );
}
- if( !strncasecmp( psz_node, "COPYRIGHT", 9 ) )
+ else if( !strncasecmp( psz_node, "COPYRIGHT", 9 ) )
{
ReadElement( p_xml_reader, &psz_txt );
input_item_SetCopyright( p_current_input, psz_txt );
}
- if( !strncasecmp( psz_node, "MOREINFO", 8 ) )
+ else if( !strncasecmp( psz_node, "MOREINFO", 8 ) )
{
const char *psz_tmp;
do
@@ -388,16 +388,16 @@ static int Demux( demux_t *p_demux )
resolve_xml_special_chars( psz_txt );
input_item_SetURL( p_current_input, psz_txt );
}
- if( !strncasecmp( psz_node, "ABSTRACT", 8 ) )
+ else if( !strncasecmp( psz_node, "ABSTRACT", 8 ) )
{
ReadElement( p_xml_reader, &psz_txt );
input_item_SetDescription( p_current_input, psz_txt );
}
-
+ else
/* Base Node handler */
if( !strncasecmp( psz_node, "BASE", 4 ) )
ReadElement( p_xml_reader, &psz_base );
-
+ else
/* Entry Ref Handler */
if( !strncasecmp( psz_node, "ENTRYREF", 7 ) )
{
@@ -418,7 +418,7 @@ static int Demux( demux_t *p_demux )
vlc_gc_decref( p_input );
}
-
+ else
/* Entry Handler */
if( !strncasecmp( psz_node, "ENTRY", 5 ) )
{
More information about the vlc-commits
mailing list