[FFmpeg-cvslog] Allow use of @ character in username and passwords embedded in URLs

Gavin Kinsey git at videolan.org
Mon Nov 19 18:30:10 CET 2012


ffmpeg | branch: master | Gavin Kinsey <gkinsey at ad-holdings.co.uk> | Thu Nov 15 10:56:47 2012 +0000| [19660a887677bdf22593cb89753f13db7f525358] | committer: Michael Niedermayer

Allow use of @ character in username and passwords embedded in URLs

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

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

diff --git a/libavformat/utils.c b/libavformat/utils.c
index af1f323..4760f45 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -3592,7 +3592,7 @@ void av_url_split(char *proto, int proto_size,
                   char *path, int path_size,
                   const char *url)
 {
-    const char *p, *ls, *ls2, *at, *col, *brk;
+    const char *p, *ls, *ls2, *at, *at2, *col, *brk;
 
     if (port_ptr)               *port_ptr = -1;
     if (proto_size > 0)         proto[0] = 0;
@@ -3627,9 +3627,10 @@ void av_url_split(char *proto, int proto_size,
     /* the rest is hostname, use that to parse auth/port */
     if (ls != p) {
         /* authorization (user[:pass]@hostname) */
-        if ((at = strchr(p, '@')) && at < ls) {
-            av_strlcpy(authorization, p,
-                       FFMIN(authorization_size, at + 1 - p));
+        at2 = p;
+        while ((at = strchr(p, '@')) && at < ls) {
+            av_strlcpy(authorization, at2,
+                       FFMIN(authorization_size, at + 1 - at2));
             p = at + 1; /* skip '@' */
         }
 



More information about the ffmpeg-cvslog mailing list