[pve-devel] [PATCH v2 storage] storage migration: insecure: improve logging

Fabian Ebner f.ebner at proxmox.com
Thu Feb 11 11:24:13 CET 2021


by including the message/error from the remote side. Some people on the forum[0]
ran into 'no tunnel IP received', but without information from the remote side
it's hard to tell why.

[0]: https://forum.proxmox.com/threads/failed-no-tunnel-ip-received.80172

Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
---

Changes from v1:
    * keep in capturing regexes to untaint

 PVE/Storage.pm | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/PVE/Storage.pm b/PVE/Storage.pm
index 22a6ef1..8ee2c92 100755
--- a/PVE/Storage.pm
+++ b/PVE/Storage.pm
@@ -758,8 +758,14 @@ sub storage_migrate {
 		or die "receive command failed: $!\n";
 	    close($input);
 
-	    my ($ip) = <$info> =~ /^($PVE::Tools::IPRE)$/ or die "no tunnel IP received\n";
-	    my ($port) = <$info> =~ /^(\d+)$/ or die "no tunnel port received\n";
+	    my $try_ip = <$info> // '';
+	    my ($ip) = $try_ip =~ /^($PVE::Tools::IPRE)$/ # untaint
+		or die "no tunnel IP received, got '$try_ip'\n";
+
+	    my $try_port = <$info> // '';
+	    my ($port) = $try_port =~ /^(\d+)$/ # untaint
+		or die "no tunnel port received, got '$try_port'\n";
+
 	    my $socket = IO::Socket::IP->new(PeerHost => $ip, PeerPort => $port, Type => SOCK_STREAM)
 		or die "failed to connect to tunnel at $ip:$port\n";
 	    # we won't be reading from the socket
-- 
2.20.1





More information about the pve-devel mailing list