Currently, keys in an unknown section will be interpreted as still belonging to the last section and might erroneously overwrite values in that way. Explicitly ignore unknown sections to avoid this while warning the user.
Signed-off-by: Fiona Ebner <f.eb...@proxmox.com> --- PVE/QemuServer.pm | 8 ++++++++ test/parse-config-expected/unknown-sections.conf | 8 ++++---- .../unknown-sections.conf.strict.error | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index d8bb21d6..e0cca0e4 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -2251,8 +2251,16 @@ sub parse_vm_config { $finish_description->(); $conf = $res->{snapshots}->{$section->{name}} = {}; next; + } elsif ($line =~ m/^\[([^\]]*)\]\s*$/i) { + my $unknown_section = $1; + $section = undef; + $finish_description->(); + $handle_error->("vm $vmid - skipping unknown section: '$unknown_section'\n"); + next; } + next if !defined($section); + if ($line =~ m/^\#(.*)$/) { $descr = '' if !defined($descr); $descr .= PVE::Tools::decode_text($1) . "\n"; diff --git a/test/parse-config-expected/unknown-sections.conf b/test/parse-config-expected/unknown-sections.conf index 08f1a3e2..6329c33a 100644 --- a/test/parse-config-expected/unknown-sections.conf +++ b/test/parse-config-expected/unknown-sections.conf @@ -5,7 +5,7 @@ ide2: lvm:vm-120-cloudinit,media=cdrom ipconfig0: ip6=dhcp memory: 4096 meta: creation-qemu=9.0.2,ctime=1725975013 -name: foo +name: deb1223 net0: vmxnet3=BC:24:11:2C:69:EC,bridge=vnet0,firewall=1 numa: 0 ostype: l26 @@ -18,11 +18,11 @@ unused0: rbd:vm-120-disk-0 vmgenid: 7079e97c-50e3-4079-afe7-23e67566b946 [PENDING] -bios: seabios +bios: ovmf [special:cloudinit] ipconfig0: ip=dhcp,ip6=dhcp -name: bar +name: deb122 [foo] boot: order=scsi0 @@ -32,7 +32,7 @@ ide2: lvm:vm-120-cloudinit,media=cdrom ipconfig0: ip=dhcp,ip6=dhcp memory: 4096 meta: creation-qemu=9.0.2,ctime=1725975013 -name: baz +name: deb1223 net0: vmxnet3=BC:24:11:2C:69:EC,bridge=vnet0,firewall=1 numa: 0 ostype: l26 diff --git a/test/parse-config-expected/unknown-sections.conf.strict.error b/test/parse-config-expected/unknown-sections.conf.strict.error index e7004dc9..7f921a70 100644 --- a/test/parse-config-expected/unknown-sections.conf.strict.error +++ b/test/parse-config-expected/unknown-sections.conf.strict.error @@ -1 +1 @@ -vm 8006 - unable to parse config: [special:unknown123] +vm 8006 - skipping unknown section: 'special:unknown123' -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel