From 9adc4c69ef6d0609bdf9d86b7a25f9872d6852d5 Mon Sep 17 00:00:00 2001 From: Fiona Ebner Date: Thu, 19 Dec 2024 11:43:06 +0100 Subject: [PATCH] export: redirect stdout to avoid any unrelated messages ending up in the export stream Current export implementations luckily seems to not run into this issue yet. However, for the upcoming implementation for RBD, mapping a volume would print the device path to STDOUT, thus messing up the export stream. Signed-off-by: Fiona Ebner --- src/PVE/CLI/pvesm.pm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/PVE/CLI/pvesm.pm b/src/PVE/CLI/pvesm.pm index 9b9676b..d308b3d 100755 --- a/src/PVE/CLI/pvesm.pm +++ b/src/PVE/CLI/pvesm.pm @@ -315,7 +315,10 @@ __PACKAGE__->register_method ({ my $outfh; if ($filename eq '-') { - $outfh = \*STDOUT; + # No other messages must go to STDOUT if it's used for the export stream! + open($outfh, '>&', STDOUT) or die "unable to dup() STDOUT - $!\n"; + close(STDOUT); + open(STDOUT, '>', '/dev/null'); } else { sysopen($outfh, $filename, O_CREAT|O_WRONLY|O_TRUNC) or die "open($filename): $!\n";