[pve-devel] [PATCH common] fix #2374: bridge-ports is assumed to be defined

Mira Limbeck m.limbeck at proxmox.com
Wed Jun 10 16:03:38 CEST 2020


bridge-ports is an optional parameter but was assumed to be defined in
the code. This resulted in 'use of uninitialized value' warnings.

By reordering of the $ports definition before the replace, we get rid of
the 'use of uninitialized value' when no bridge-port is specified.

In the second case we set it to an empty string when it is undefined.

Signed-off-by: Mira Limbeck <m.limbeck at proxmox.com>
---
 src/PVE/INotify.pm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/PVE/INotify.pm b/src/PVE/INotify.pm
index c507515..f524672 100644
--- a/src/PVE/INotify.pm
+++ b/src/PVE/INotify.pm
@@ -1236,8 +1236,8 @@ sub __interface_to_string {
 	# not printing out options
     } elsif ($d->{type} eq 'bridge') {
 
-	$d->{bridge_ports} =~ s/[;,\s]+/ /g;
 	my $ports = $d->{bridge_ports} || 'none';
+	$ports =~ s/[;,\s]+/ /g;
 	$raw .= "\tbridge-ports $ports\n";
 	$done->{bridge_ports} = 1;
 
@@ -1605,7 +1605,7 @@ sub __write_etc_network_interfaces {
     foreach my $iface (keys %$ifaces_copy) {
 	my $d = $ifaces_copy->{$iface};
 	if ($d->{type} eq 'bridge') {
-	    foreach my $p (split (/\s+/, $d->{bridge_ports})) {
+	    foreach my $p (split (/\s+/, $d->{bridge_ports} // '')) {
 		if($p =~ m/(\S+)\.(\d+)$/) {
 		    my $vlanparent = $1;
 		    if (!defined($ifaces_copy->{$p})) {
-- 
2.20.1





More information about the pve-devel mailing list