url: Don't treat slashes in query parameters as directory separators
authorDuncan Salerno <duncan.salerno@gmail.com>
Fri, 5 Oct 2012 22:57:32 +0000 (01:57 +0300)
committerMartin Storsjö <martin@martin.st>
Tue, 9 Oct 2012 11:16:31 +0000 (14:16 +0300)
Strip off query parameters from the original url before
applying the new relative path.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/utils.c

index bba5b2ae352a9175e4edcb8dc0219574bf00ede0..1fd0ba3e8ee39efc069b44b27433ea57971df034 100644 (file)
@@ -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)