diff options
-rw-r--r-- | libavformat/avio.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libavformat/avio.c b/libavformat/avio.c index ac041a3..3cd9e4d 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -17,6 +17,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "avformat.h" +#include <ctype.h> URLProtocol *first_protocol = NULL; @@ -41,12 +42,16 @@ int url_open(URLContext **puc, const char *filename, int flags) p = filename; q = proto_str; while (*p != '\0' && *p != ':') { + /* protocols can only contain alphabetic chars */ + if (!isalpha(*p)) + goto file_proto; if ((q - proto_str) < sizeof(proto_str) - 1) *q++ = *p; p++; } /* if the protocol has length 1, we consider it is a dos drive */ if (*p == '\0' || (q - proto_str) <= 1) { + file_proto: strcpy(proto_str, "file"); } else { *q = '\0'; |