aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDuncan Salerno <duncan.salerno@gmail.com>2012-10-06 01:57:32 +0300
committerMartin Storsjö <martin@martin.st>2012-10-09 14:16:31 +0300
commita6363e3d89e7a32078d28e7fb77bb5246e2cadee (patch)
treea5775d9b947fee60912a2d5257a1b426ff582623
parenta75b9a1804769169456306f570b6716d977ebdc5 (diff)
downloadffmpeg-a6363e3d89e7a32078d28e7fb77bb5246e2cadee.tar.gz
url: Don't treat slashes in query parameters as directory separators
Strip off query parameters from the original url before applying the new relative path. Signed-off-by: Martin Storsjö <martin@martin.st>
-rw-r--r--libavformat/utils.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c
index bba5b2ae35..1fd0ba3e8e 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -3389,7 +3389,7 @@ int ff_find_stream_index(AVFormatContext *s, int id)
void ff_make_absolute_url(char *buf, int size, const char *base,
const char *rel)
{
- char *sep;
+ char *sep, *path_query;
/* Absolute path, relative to the current server */
if (base && strstr(base, "://") && rel[0] == '/') {
if (base != buf)
@@ -3411,6 +3411,12 @@ void ff_make_absolute_url(char *buf, int size, const char *base,
}
if (base != buf)
av_strlcpy(buf, base, size);
+
+ /* Strip off any query string from base */
+ path_query = strchr(buf, '?');
+ if (path_query != NULL)
+ *path_query = '\0';
+
/* Remove the file name from the base url */
sep = strrchr(buf, '/');
if (sep)