vlc | branch: master | Ilkka Ollakka <[email protected]> | Wed Mar 20 08:41:50 2013 +0200| [1abf871cee239bff24d2e25c77f2c43d3a5cd741] | committer: Ilkka Ollakka
httplive: handle better relative urls if path starts with / it's related to root of server and not current path. Fixes: #8321 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1abf871cee239bff24d2e25c77f2c43d3a5cd741 --- modules/stream_filter/httplive.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/stream_filter/httplive.c b/modules/stream_filter/httplive.c index 1e39733..4771f79 100644 --- a/modules/stream_filter/httplive.c +++ b/modules/stream_filter/httplive.c @@ -547,10 +547,18 @@ static char *relative_URI(const char *psz_url, const char *psz_path) if (strncmp(psz_path, "http", 4) == 0) return NULL; - char *path_end = strrchr(psz_url, '/'); - if (path_end == NULL) + char *path_separator=NULL; + if( psz_path[0] == '/' ) //Relative URL with absolute path + { + //Try to find separator for name and path, try to skip + //access and first :// + path_separator = strchr( &psz_url[8], '/'); + } else { + path_separator = strrchr(psz_url, '/'); + } + if ( unlikely( path_separator == NULL ) ) return NULL; - unsigned int url_length = path_end - psz_url + 1; + const size_t url_length = path_separator - psz_url + 1; char *psz_res = malloc(url_length + strlen(psz_path) + 1); strncpy(psz_res, psz_url, url_length); psz_res[url_length] = 0; _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
