network: do not clear map from alternative names to link when IFLA_PROP_LIST attribute is not contained

No IFLA_PROP_LIST attribute contained does not means the interface
has no alternative name.
E.g. the message created by inet6_fill_ifinfo() in net/ipv6/addrconf.c
does not contain IFLA_PROP_LIST.
This commit is contained in:
Yu Watanabe
2021-11-19 05:36:44 +09:00
parent 1285252823
commit 50df02a705

View File

@@ -2231,7 +2231,11 @@ static int link_update_alternative_names(Link *link, sd_netlink_message *message
assert(message);
r = sd_netlink_message_read_strv(message, IFLA_PROP_LIST, IFLA_ALT_IFNAME, &altnames);
if (r < 0 && r != -ENODATA)
if (r == -ENODATA)
/* The message does not have IFLA_PROP_LIST container attribute. It does not means the
* interface has no alternative name. */
return 0;
if (r < 0)
return log_link_debug_errno(link, r, "rtnl: failed to read alternative names: %m");
STRV_FOREACH(n, link->alternative_names)