[pve-devel] [PATCH qemu-server] cdrom handling: default to "none" if no physical drive is available

Stefan Sterz s.sterz at proxmox.com
Fri Dec 16 16:08:07 CET 2022


when a vm is configured to use the physical cd rom drive but there is
no such drive a cryptic "uninitialized value" error is thrown. this
is due to the `$path` not being defined in `sub
print_drive_commandline_full` in this case. warn that no cd rom drive
is available and default back to using "none" as media instead.

note that the error was basically cosmetic as the vm would start just
fine.

forum thread: https://forum.proxmox.com/threads/use-of-uninitialized-value-path-in-pattern-match-m-at-usr-share-perl5-pve-qemuserver-pm-line-1622.119592/

Signed-off-by: Stefan Sterz <s.sterz at proxmox.com>
---
 PVE/QemuServer.pm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index dd6ea3e..bc935df 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -1292,6 +1292,9 @@ sub get_cdrom_path {
     return $cdrom_path = "/dev/cdrom" if -l "/dev/cdrom";
     return $cdrom_path = "/dev/cdrom1" if -l "/dev/cdrom1";
     return $cdrom_path = "/dev/cdrom2" if -l "/dev/cdrom2";
+
+    warn "there is no physical cdrom drive that can be used. defaulting back to 'none'.";
+    return '';
 }
 
 sub get_iso_path {
-- 
2.30.2






More information about the pve-devel mailing list