]> git.proxmox.com Git - qemu-server.git/commitdiff
fix #2473: use of unitialized value
authorMira Limbeck <m.limbeck@proxmox.com>
Thu, 21 Nov 2019 10:04:25 +0000 (11:04 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Thu, 21 Nov 2019 11:53:40 +0000 (12:53 +0100)
With the noerr flag set in parse_volume_id we have to check if
$volname is defined before comparing it to 'cloudinit'.

Signed-off-by: Mira Limbeck <m.limbeck@proxmox.com>
PVE/API2/Qemu.pm

index 4dd329ab959d111373ef374d996bfe853e8d106d..ed4e5228d39db00b9c1ee5e9c59742c271ff50fb 100644 (file)
@@ -70,7 +70,7 @@ my $check_storage_access = sub {
        my $volid = $drive->{file};
        my ($storeid, $volname) = PVE::Storage::parse_volume_id($volid, 1);
 
-       if (!$volid || ($volid eq 'none' || $volid eq 'cloudinit' || $volname eq 'cloudinit')) {
+       if (!$volid || ($volid eq 'none' || $volid eq 'cloudinit' || (defined($volname) && $volname eq 'cloudinit'))) {
            # nothing to check
        } elsif ($isCDROM && ($volid eq 'cdrom')) {
            $rpcenv->check($authuser, "/", ['Sys.Console']);
@@ -148,7 +148,7 @@ my $create_disks = sub {
        if (!$volid || $volid eq 'none' || $volid eq 'cdrom') {
            delete $disk->{size};
            $res->{$ds} = PVE::QemuServer::print_drive($vmid, $disk);
-       } elsif ($volname eq 'cloudinit') {
+       } elsif (defined($volname) && $volname eq 'cloudinit') {
            $storeid = $storeid // $default_storage;
            die "no storage ID specified (and no default storage)\n" if !$storeid;
            my $scfg = PVE::Storage::storage_config($storecfg, $storeid);