]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
libvirt: Fix crash on URI without scheme
authorCole Robinson <crobinso@redhat.com>
Wed, 20 Apr 2016 17:25:07 +0000 (13:25 -0400)
committerCole Robinson <crobinso@redhat.com>
Thu, 21 Apr 2016 13:46:16 +0000 (09:46 -0400)
My commit 0d1579572 crashes on a URI without a scheme, like via
'virsh --connect frob'

Add a check on uri->server too while we are at it, and centralize
them all

(cherry picked from commit f1bae376b71ecc712e5d8359382290db1120e13e)

src/libvirt.c

index 8f665ee4858f6f23399256718504619f78287d05..67093de9bc98fc8d74d16f377327b235ef5652c8 100644 (file)
@@ -942,6 +942,9 @@ virConnectGetDefaultURI(virConfPtr conf,
 static int
 virConnectCheckURIMissingSlash(const char *uristr, virURIPtr uri)
 {
+    if (!uri->scheme || !uri->path || !uri->server)
+        return 0;
+
     /* To avoid false positives, only check drivers that mandate
        a path component in the URI, like /system or /session */
     if (STRNEQ(uri->scheme, "qemu") &&
@@ -949,9 +952,6 @@ virConnectCheckURIMissingSlash(const char *uristr, virURIPtr uri)
         STRNEQ(uri->scheme, "vz"))
         return 0;
 
-    if (uri->path != NULL)
-        return 0;
-
     if (STREQ(uri->server, "session") ||
         STREQ(uri->server, "system")) {
         virReportError(VIR_ERR_INTERNAL_ERROR,