Fixes: f9be9137 ("api: create/modify: add content type checks"
Reported-by: Thomas Lamprecht <t.lampre...@proxmox.com>
Signed-off-by: Fabian Ebner <f.eb...@proxmox.com>
---
 PVE/API2/Qemu.pm | 28 ++++++++++++----------------
 1 file changed, 12 insertions(+), 16 deletions(-)

diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index 3af21325..71db264a 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -142,14 +142,12 @@ my $check_storage_access = sub {
            raise_param_exc({ storage => "storage '$storeid' does not support 
vm images"})
                if !$scfg->{content}->{images};
        } else {
-           PVE::Storage::check_volume_access(
-               $rpcenv,
-               $authuser,
-               $storecfg,
-               $vmid,
-               $volid,
-               'images',
-           );
+           PVE::Storage::check_volume_access($rpcenv, $authuser, $storecfg, 
$vmid, $volid);
+           if ($storeid) {
+               my ($vtype) = PVE::Storage::parse_volname($storecfg, $volid);
+               raise_param_exc({ $ds => "content type needs to be 'images' or 
'iso'" })
+                   if $vtype ne 'images' && $vtype ne 'iso';
+           }
        }
 
        if (my $src_image = $drive->{'import-from'}) {
@@ -421,14 +419,12 @@ my $create_disks = sub {
 
            print "$ds: successfully created disk '$res->{$ds}'\n";
        } else {
-           PVE::Storage::check_volume_access(
-               $rpcenv,
-               $authuser,
-               $storecfg,
-               $vmid,
-               $volid,
-               'images',
-           );
+           PVE::Storage::check_volume_access($rpcenv, $authuser, $storecfg, 
$vmid, $volid);
+           if ($storeid) {
+               my ($vtype) = PVE::Storage::parse_volname($storecfg, $volid);
+               die "cannot use volume $volid - content type needs to be 
'images' or 'iso'"
+                   if $vtype ne 'images' && $vtype ne 'iso';
+           }
 
            PVE::Storage::activate_volumes($storecfg, [ $volid ]) if $storeid;
 
-- 
2.30.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to