From 84731442eb301b3d50cd2a755c988e5d75f89fd9 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Mon, 19 Oct 2020 16:15:25 +0200 Subject: [PATCH] partially fix #3056: namespace vzdump tmpdir with vmid 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 --- 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.39.5