applehttp: Allow the base url to be a local file name, too
authorMartin Storsjö <martin@martin.st>
Sat, 2 Oct 2010 21:57:58 +0000 (21:57 +0000)
committerMartin Storsjö <martin@martin.st>
Sat, 2 Oct 2010 21:57:58 +0000 (21:57 +0000)
Originally committed as revision 25316 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/applehttp.c

index 3aa7ed4..1252dc5 100644 (file)
@@ -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);