[FFmpeg-cvslog] avio: allow any chars in protocols

Michael Niedermayer git at videolan.org
Tue Nov 22 21:16:49 CET 2011


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Thu Nov 10 17:02:02 2011 +0100| [c12e1bd1bc7f0dd0dae2937d7f8c564e887c84ff] | committer: Michael Niedermayer

avio: allow any chars in protocols

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

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

 libavformat/avio.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/libavformat/avio.c b/libavformat/avio.c
index b2b39b3..446f681 100644
--- a/libavformat/avio.c
+++ b/libavformat/avio.c
@@ -265,17 +265,17 @@ int ffurl_alloc(URLContext **puc, const char *filename, int flags,
 {
     URLProtocol *up = NULL;
     char proto_str[128], proto_nested[128], *ptr;
-    size_t proto_len = strspn(filename, URL_SCHEME_CHARS);
+    const char *proto_end = strchr(filename, ':');
 
     if (!first_protocol) {
         av_log(NULL, AV_LOG_WARNING, "No URL Protocols are registered. "
                                      "Missing call to av_register_all()?\n");
     }
 
-    if (filename[proto_len] != ':' || is_dos_path(filename))
+    if (!proto_end || is_dos_path(filename))
         strcpy(proto_str, "file");
     else
-        av_strlcpy(proto_str, filename, FFMIN(proto_len+1, sizeof(proto_str)));
+        av_strlcpy(proto_str, filename, FFMIN(proto_end-filename+1, sizeof(proto_str)));
 
     av_strlcpy(proto_nested, proto_str, sizeof(proto_nested));
     if ((ptr = strchr(proto_nested, '+')))



More information about the ffmpeg-cvslog mailing list