diff options
author | Duncan Salerno <duncan.salerno@gmail.com> | 2012-10-06 02:57:32 +0400 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2012-10-09 15:16:31 +0400 |
commit | a6363e3d89e7a32078d28e7fb77bb5246e2cadee (patch) | |
tree | a5775d9b947fee60912a2d5257a1b426ff582623 /libavformat/utils.c | |
parent | a75b9a1804769169456306f570b6716d977ebdc5 (diff) |
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>
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r-- | libavformat/utils.c | 8 |
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) |