lavf/utils: Allow url credentials to contain a slash.
authorCarl Eugen Hoyos <ceffmpeg@gmail.com>
Thu, 28 Mar 2019 18:33:22 +0000 (19:33 +0100)
committerCarl Eugen Hoyos <ceffmpeg@gmail.com>
Fri, 19 Apr 2019 11:56:19 +0000 (13:56 +0200)
Fixes ticket #7816.

libavformat/utils.c

index 9b3f0d2..c3ec4cc 100644 (file)
@@ -4730,7 +4730,7 @@ void av_url_split(char *proto, int proto_size,
                   char *hostname, int hostname_size,
                   int *port_ptr, char *path, int path_size, const char *url)
 {
-    const char *p, *ls, *ls2, *at, *at2, *col, *brk;
+    const char *p, *ls, *ls2, *ls3, *at, *at2, *col, *brk;
 
     if (port_ptr)
         *port_ptr = -1;
@@ -4760,6 +4760,9 @@ void av_url_split(char *proto, int proto_size,
     /* separate path from hostname */
     ls = strchr(p, '/');
     ls2 = strchr(p, '?');
+    ls3 = strchr(p, '@');
+    if (ls3 && ls3 > ls && (!ls2 || ls2 > ls3))
+        ls = strchr(ls3, '/');
     if (!ls)
         ls = ls2;
     else if (ls && ls2)