diff options
author | Duncan Salerno <duncan.salerno@gmail.com> | 2012-10-06 02:02:18 +0300 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2012-10-09 14:16:33 +0300 |
commit | 33893e6abcdca865c06c64547be56070c64aa590 (patch) | |
tree | dd827552846aa7d98639bd8dbc4e76c093f23312 /libavformat | |
parent | eea003814cc5afaea546a6d229690350bd7481af (diff) | |
download | ffmpeg-33893e6abcdca865c06c64547be56070c64aa590.tar.gz |
url: Handle relative urls starting with two slashes
This is defined by RFC 3986 section 5.4.1 to be handled this way.
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/utils.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c index 9d0049a9ad..ca52469bdb 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -3396,10 +3396,16 @@ void ff_make_absolute_url(char *buf, int size, const char *base, av_strlcpy(buf, base, size); sep = strstr(buf, "://"); if (sep) { - sep += 3; - sep = strchr(sep, '/'); - if (sep) - *sep = '\0'; + /* Take scheme from base url */ + if (rel[1] == '/') { + sep[1] = '\0'; + } else { + /* Take scheme and host from base url */ + sep += 3; + sep = strchr(sep, '/'); + if (sep) + *sep = '\0'; + } } av_strlcat(buf, rel, size); return; |