From 0601ce56ed422cc56a63da6d8f3b0123dad340e0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Duraffort?= Date: Sun, 27 Jun 2010 20:07:15 +0200 Subject: [PATCH] xspf: silently skip unknown extension nodes (fix #3696) --- modules/demux/playlist/xspf.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/modules/demux/playlist/xspf.c b/modules/demux/playlist/xspf.c index 278ad103ef..27bef7042d 100644 --- a/modules/demux/playlist/xspf.c +++ b/modules/demux/playlist/xspf.c @@ -738,11 +738,28 @@ static bool parse_extension_node COMPLEX_INTERFACE msg_Warn( p_demux, " requires \"application\" attribute" ); return false; } + /* Skip the extension if the application is not vlc + This will skip all children of the current node */ else if( strcmp( psz_application, "http://www.videolan.org/vlc/playlist/0" ) ) { msg_Dbg( p_demux, "Skipping \"%s\" extension tag", psz_application ); free( psz_application ); - return false; + /* Skip all children */ + while( xml_ReaderRead( p_xml_reader ) == 1 ) + { + if( xml_ReaderNodeType( p_xml_reader ) == XML_READER_ENDELEM ) + { + char *psz_name = xml_ReaderName( p_xml_reader ); + if( !strcmp( psz_name, "extension" ) ) + { + free( psz_name ); + break; + } + msg_Dbg( p_demux, "\tskipping \"%s\" extension child", psz_name ); + free( psz_name ); + } + } + return true; } } free( psz_application ); -- 2.39.2