config: pending network: avoid undef-warning on old/new comparison

A network device of a VM does not necessarily has to be connected to
an actual bridge, so when a new pending value is set we need to use
the undef-safe compare helpers when checking if there was a change
between old and new value, as otherwise one gets ugly "use of
uninitialized value in string ne" warnings.

Link: https://forum.proxmox.com/threads/143072/
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
Thomas Lamprecht 2024-03-10 18:12:21 +01:00
parent 9a1b5d0e71
commit 3fde43d2ec

View File

@ -5206,8 +5206,10 @@ sub vmconfig_apply_pending {
if ($conf->{$opt}){
my $old_net = PVE::QemuServer::parse_net($conf->{$opt});
if ($old_net->{bridge} ne $new_net->{bridge} ||
$old_net->{macaddr} ne $new_net->{macaddr}) {
if (defined($old_net->{bridge}) && defined($old_net->{macaddr}) && (
safe_string_ne($old_net->{bridge}, $new_net->{bridge}) ||
safe_string_ne($old_net->{macaddr}, $new_net->{macaddr})
)) {
PVE::Network::SDN::Vnets::del_ips_from_mac($old_net->{bridge}, $old_net->{macaddr}, $conf->{name});
}
}