summaryrefslogtreecommitdiff
path: root/libavformat/applehttp.c
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2010-10-02 21:57:58 +0000
committerMartin Storsjö <martin@martin.st>2010-10-02 21:57:58 +0000
commit8f7c2452dee8d8b72a6c0898ac90c44a4a7d9809 (patch)
treebafede1428d84cb02d13f51d3bc97c7760f578bb /libavformat/applehttp.c
parent2e0559b713b6507ab1b9f469c70c2a52a3927fc6 (diff)
applehttp: Allow the base url to be a local file name, too
Originally committed as revision 25316 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/applehttp.c')
-rw-r--r--libavformat/applehttp.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/libavformat/applehttp.c b/libavformat/applehttp.c
index 3aa7ed4239..1252dc5a68 100644
--- a/libavformat/applehttp.c
+++ b/libavformat/applehttp.c
@@ -90,7 +90,7 @@ static void make_absolute_url(char *buf, int size, const char *base,
const char *rel)
{
char *sep;
- if (!base || strstr(rel, "://")) {
+ if (!base || strstr(rel, "://") || rel[0] == '/') {
av_strlcpy(buf, rel, size);
return;
}
@@ -99,13 +99,15 @@ static void make_absolute_url(char *buf, int size, const char *base,
sep = strrchr(buf, '/');
if (sep)
sep[1] = '\0';
- while (av_strstart(rel, "../", NULL)) {
- if (sep) {
+ else
+ buf[0] = '\0';
+ while (av_strstart(rel, "../", NULL) && sep) {
sep[0] = '\0';
sep = strrchr(buf, '/');
if (sep)
sep[1] = '\0';
- }
+ else
+ buf[0] = '\0';
rel += 3;
}
av_strlcat(buf, rel, size);