[FFmpeg-cvslog] lavf/utils: Allow url credentials to contain a slash.

Carl Eugen Hoyos git at videolan.org
Fri Apr 19 14:57:20 EEST 2019


ffmpeg | branch: master | Carl Eugen Hoyos <ceffmpeg at gmail.com> | Thu Mar 28 19:33:22 2019 +0100| [dd06f022b07438d650c82255dff16908ba04244a] | committer: Carl Eugen Hoyos

lavf/utils: Allow url credentials to contain a slash.

Fixes ticket #7816.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=dd06f022b07438d650c82255dff16908ba04244a
---

 libavformat/utils.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libavformat/utils.c b/libavformat/utils.c
index 9b3f0d28e6..c3ec4cc7fd 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -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)



More information about the ffmpeg-cvslog mailing list