From e297c4903a0c4f98847f0e1cd42293b757fd1be5 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Tue, 11 Nov 2014 07:01:01 +0100 Subject: [PATCH] parse_vm_config: only allow 'delete' inside [PENDING] Signed-off-by: Dietmar Maurer --- PVE/QemuServer.pm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 87c95d4c..ae1e1dcc 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -1847,22 +1847,24 @@ sub parse_vm_config { my $conf = $res; my $descr = ''; + my $section = ''; my @lines = split(/\n/, $raw); foreach my $line (@lines) { next if $line =~ m/^\s*$/; if ($line =~ m/^\[PENDING\]\s*$/i) { + $section = 'pending'; $conf->{description} = $descr if $descr; $descr = ''; - $conf = $res->{pending} = {}; + $conf = $res->{$section} = {}; next; } elsif ($line =~ m/^\[([a-z][a-z0-9_\-]+)\]\s*$/i) { - my $snapname = $1; + $section = $1; $conf->{description} = $descr if $descr; $descr = ''; - $conf = $res->{snapshots}->{$snapname} = {}; + $conf = $res->{snapshots}->{$section} = {}; next; } @@ -1879,9 +1881,8 @@ sub parse_vm_config { my $key = $1; my $value = $2; $conf->{$key} = $value; - } elsif ($line =~ m/^(delete):\s*(.*\S)\s*$/) { - my $key = $1; - my $value = $2; + } elsif (($section eq 'pending') && ($line =~ m/^delete:\s*(.*\S)\s*$/)) { + my $value = $1; foreach my $opt (split(/,/, $value)) { $conf->{del}->{$opt} = 1; }