]> xenbits.xensource.com Git - libvirt.git/commitdiff
storageVolCreateXMLFrom: Check if backend knows how to createVol
authorMichal Privoznik <mprivozn@redhat.com>
Wed, 10 Feb 2016 16:17:00 +0000 (17:17 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Fri, 12 Feb 2016 15:16:58 +0000 (16:16 +0100)
It is highly unlikely that a backend will know how to create a
volume from a different volume (buildVolFrom) and not know how to
create an empty volume (createVol). But:
1) we call the function without any prior check so if that's the
case we would SIGSEGV immediatelly
2) it's better to be safe than sorry.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
src/storage/storage_driver.c

index e0ded0161994930a7483930516ca6aaf9a0595ad..81b158497d26bf688a99732a5bcdd7f653383be4 100644 (file)
@@ -2037,6 +2037,13 @@ storageVolCreateXMLFrom(virStoragePoolPtr obj,
     if (newvol->target.capacity < origvol->target.capacity)
         newvol->target.capacity = origvol->target.capacity;
 
+    if (!backend->createVol) {
+        virReportError(VIR_ERR_NO_SUPPORT,
+                       "%s", _("storage pool does not support volume "
+                               "creation"));
+        goto cleanup;
+    }
+
     if (!backend->buildVolFrom) {
         virReportError(VIR_ERR_NO_SUPPORT,
                        "%s", _("storage pool does not support"