[pve-devel] [PATCH manager] partially fix #3056: namespace vzdump tmpdir with vmid

Dominik Csapak d.csapak at proxmox.com
Mon Oct 19 16:15:25 CEST 2020


this fixes an issue where a rogue running backup would upload the vm
config of a later backup in a backup job

instead now that directory gets deleted and the config is not
available anymore

we cannot really keep those directories around until the end of the
backup job, since we temporarily save ct contents there, which could get
large very fast

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
 PVE/VZDump.pm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/PVE/VZDump.pm b/PVE/VZDump.pm
index 542228d6..cdcb658f 100644
--- a/PVE/VZDump.pm
+++ b/PVE/VZDump.pm
@@ -769,10 +769,11 @@ sub exec_backup_task {
 
 	$task->{vmtype} = $vmtype;
 
+	my $pid = $$;
 	if ($opts->{tmpdir}) {
-	    $task->{tmpdir} = "$opts->{tmpdir}/vzdumptmp$$";
+	    $task->{tmpdir} = "$opts->{tmpdir}/vzdumptmp${pid}_$vmid/";
 	} elsif ($self->{opts}->{pbs}) {
-	    $task->{tmpdir} = "/var/tmp/vzdumptmp$$"; #fixme
+	    $task->{tmpdir} = "/var/tmp/vzdumptmp${pid}_$vmid";
 	} else {
 	    # dumpdir is posix? then use it as temporary dir
 	    my $info = get_mount_info($opts->{dumpdir});
@@ -780,7 +781,7 @@ sub exec_backup_task {
 		grep ($_ eq $info->{fstype}, @posix_filesystems)) {
 		$task->{tmpdir} = "$opts->{dumpdir}/$basename.tmp";
 	    } else {
-		$task->{tmpdir} = "/var/tmp/vzdumptmp$$";
+		$task->{tmpdir} = "/var/tmp/vzdumptmp${pid}_$vmid";
 		debugmsg ('info', "filesystem type on dumpdir is '$info->{fstype}' -" .
 			  "using $task->{tmpdir} for temporary files", $logfd);
 	    }
-- 
2.20.1






More information about the pve-devel mailing list