]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
storage: Add specific check for LUKS encryption support
authorJohn Ferlan <jferlan@redhat.com>
Tue, 29 May 2018 15:01:15 +0000 (11:01 -0400)
committerJohn Ferlan <jferlan@redhat.com>
Tue, 5 Jun 2018 11:42:00 +0000 (07:42 -0400)
Modify virStorageBackendLogicalLVCreate to ensure if encryption
is requested that only type LUKS is supported; otherwise, error.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
src/storage/storage_backend_logical.c

index edd4971f1f1f17e1d12db4c5cc750958bd944766..67ca7f514d01c3ce30d07357cff7925358afd0e6 100644 (file)
@@ -938,6 +938,13 @@ virStorageBackendLogicalLVCreate(virStorageVolDefPtr vol,
     unsigned long long capacity = vol->target.capacity;
     virCommandPtr cmd = NULL;
 
+    if (vol->target.encryption &&
+        vol->target.encryption->format != VIR_STORAGE_ENCRYPTION_FORMAT_LUKS) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                       _("storage pool only supports LUKS encrypted volumes"));
+        return -1;
+    }
+
     cmd = virCommandNewArgList(LVCREATE,
                                "--name", vol->name,
                                NULL);
@@ -953,8 +960,7 @@ virStorageBackendLogicalLVCreate(virStorageVolDefPtr vol,
 
     /* If we're going to encrypt using LUKS, then we could need up to
      * an extra 2MB for the LUKS header - so account for that now */
-    if (vol->target.encryption &&
-        vol->target.encryption->format == VIR_STORAGE_ENCRYPTION_FORMAT_LUKS)
+    if (vol->target.encryption)
         capacity += 2 * 1024 * 1024;
     virCommandAddArgFormat(cmd, "%lluK", VIR_DIV_UP(capacity, 1024));