]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: storagefile: Don't crash on gluster URIs without path
authorPeter Krempa <pkrempa@redhat.com>
Thu, 26 Feb 2015 09:28:21 +0000 (10:28 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 26 Feb 2015 10:50:38 +0000 (11:50 +0100)
Similar to commit fdb80ed4f6563928b9942a0d1450e0c725aa6c06 libvirtd
would crash if a gluster URI without path would be used in the backing
chain of a volume. The crash happens in the gluster specific part of the
parser that extracts the gluster volume name from the path.

Fix the crash by checking that the PATH is NULL.

This patch does not contain a test case as it's not possible to test it
with the current infrastructure as the test suite would attempt to
contact the gluster server in the URI. I'm working on the test suite
addition but that will be post-release material.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1196528

src/util/virstoragefile.c

index 029fe175f2416f1db879cd91a46e832522911585..ba001432354499ebff252e3b07a7a938c9349a90 100644 (file)
@@ -2163,6 +2163,13 @@ virStorageSourceParseBackingURI(virStorageSourcePtr src,
 
     if (src->protocol == VIR_STORAGE_NET_PROTOCOL_GLUSTER) {
         char *tmp;
+
+        if (!src->path) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                           _("missing volume name and path for gluster volume"));
+            goto cleanup;
+        }
+
         if (!(tmp = strchr(src->path, '/')) ||
             tmp == src->path) {
             virReportError(VIR_ERR_XML_ERROR,