[pve-devel] [PATCH v3 3/9] parse_vm_config: only allow 'delete' inside [PENDING]

Dietmar Maurer dietmar at proxmox.com
Mon Nov 17 10:47:19 CET 2014


Signed-off-by: Dietmar Maurer <dietmar at proxmox.com>
---
 PVE/QemuServer.pm |   13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index db46691..a83c971 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -1792,22 +1792,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;
 	}
 
@@ -1824,9 +1826,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;
 	    }
-- 
1.7.10.4




More information about the pve-devel mailing list