fix #2374: bridge-ports is assumed to be defined

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@proxmox.com>
This commit is contained in:
Mira Limbeck 2020-06-10 16:03:38 +02:00 committed by Thomas Lamprecht
parent 7157e9bd98
commit 8342b610ea

View File

@ -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})) {