Commit 993d4fcc authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

XSPF: remove harmful base decoding

parent 33ec1713
...@@ -210,7 +210,7 @@ static bool parse_playlist_node COMPLEX_INTERFACE ...@@ -210,7 +210,7 @@ static bool parse_playlist_node COMPLEX_INTERFACE
; ;
else if( !strcmp( psz_name, "xml:base" ) ) else if( !strcmp( psz_name, "xml:base" ) )
{ {
p_demux->p_sys->psz_base = decode_URI_duplicate( psz_value ); p_demux->p_sys->psz_base = strdup( psz_value );
} }
/* unknown attribute */ /* unknown attribute */
else else
...@@ -546,6 +546,13 @@ static bool parse_track_node COMPLEX_INTERFACE ...@@ -546,6 +546,13 @@ static bool parse_track_node COMPLEX_INTERFACE
/* special case: location */ /* special case: location */
if( !strcmp( p_handler->name, "location" ) ) if( !strcmp( p_handler->name, "location" ) )
{ {
/* FIXME: This is broken. Scheme-relative (//...) locations
* and anchors (#...) are not resolved correctly. Also,
* host-relative (/...) and directory-relative locations
* ("relative path" in vernacular) should be resolved.
* Last, psz_base should default to the XSPF resource
* location if missing (not the current working directory).
* -- Courmisch */
if( p_demux->p_sys->psz_base && !strstr( psz_value, "://" ) ) if( p_demux->p_sys->psz_base && !strstr( psz_value, "://" ) )
{ {
char* psz_tmp; char* psz_tmp;
......
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