diff --git a/libavformat/applehttp.c b/libavformat/applehttp.c index f2f583892d..4a4611c9bb 100644 --- a/libavformat/applehttp.c +++ b/libavformat/applehttp.c @@ -90,18 +90,21 @@ static void make_absolute_url(char *buf, int size, const char *base, const char *rel) { char *sep; + /* If rel actually is an absolute url, just copy it */ if (!base || strstr(rel, "://") || rel[0] == '/') { av_strlcpy(buf, rel, size); return; } if (base != buf) av_strlcpy(buf, base, size); + /* Remove the file name from the base url */ sep = strrchr(buf, '/'); if (sep) sep[1] = '\0'; else buf[0] = '\0'; while (av_strstart(rel, "../", NULL) && sep) { + /* Remove the path delimiter at the end */ sep[0] = '\0'; sep = strrchr(buf, '/'); /* If the next directory name to pop off is "..", break here */ @@ -110,6 +113,7 @@ static void make_absolute_url(char *buf, int size, const char *base, av_strlcat(buf, "/", size); break; } + /* Cut off the directory name */ if (sep) sep[1] = '\0'; else