avformat/hls: More strict url checks
authorMichael Niedermayer <michael@niedermayer.cc>
Fri, 15 Jan 2016 12:29:38 +0000 (13:29 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Fri, 15 Jan 2016 13:17:28 +0000 (14:17 +0100)
No case is known where these are needed

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 6ba42b6482c725a59eb468391544dc0c75b8c6f0)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavformat/hls.c

index 44b656d..6e9832f 100644 (file)
@@ -622,6 +622,10 @@ static int open_url(HLSContext *c, URLContext **uc, const char *url, AVDictionar
     // only http(s) & file are allowed
     if (!av_strstart(proto_name, "http", NULL) && !av_strstart(proto_name, "file", NULL))
         return AVERROR_INVALIDDATA;
+    if (!strncmp(proto_name, url, strlen(proto_name)) && url[strlen(proto_name)] == ':')
+        ;
+    else if (strcmp(proto_name, "file") || !strcmp(url, "file,"))
+        return AVERROR_INVALIDDATA;
 
     av_dict_copy(&tmp, c->avio_opts, 0);
     av_dict_copy(&tmp, opts, 0);