Signed-off-by: Michael Tokarev <m...@tls.msk.ru>
---
 block.c |    9 +++------
 1 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/block.c b/block.c
index e5a6f60..42d6ff1 100644
--- a/block.c
+++ b/block.c
@@ -314,7 +314,7 @@ static BlockDriver *find_hdev_driver(const char *filename)
 BlockDriver *bdrv_find_protocol(const char *filename)
 {
     BlockDriver *drv1;
-    char protocol[128];
+    char protocol[MAX_PROTO_LEN+1];
     int len;
     const char *p;
 
@@ -332,14 +332,11 @@ BlockDriver *bdrv_find_protocol(const char *filename)
         return drv1;
     }
 
-    if (!path_has_protocol(filename)) {
+    p = path_has_protocol(filename);
+    if (!p) {
         return bdrv_find_format("file");
     }
-    p = strchr(filename, ':');
-    assert(p != NULL);
     len = p - filename;
-    if (len > sizeof(protocol) - 1)
-        len = sizeof(protocol) - 1;
     memcpy(protocol, filename, len);
     protocol[len] = '\0';
     QLIST_FOREACH(drv1, &bdrv_drivers, list) {
-- 
1.7.2.3


Reply via email to