matroskaenc: check cue point validity before reallocation
[ffmpeg.git] / libavformat / utils.c
index 1fd0ba3..ca52469 100644 (file)
@@ -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;
@@ -3417,6 +3423,12 @@ void ff_make_absolute_url(char *buf, int size, const char *base,
     if (path_query != NULL)
         *path_query = '\0';
 
+    /* Is relative path just a new query part? */
+    if (rel[0] == '?') {
+        av_strlcat(buf, rel, size);
+        return;
+    }
+
     /* Remove the file name from the base url */
     sep = strrchr(buf, '/');
     if (sep)