]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: do not clear map from alternative names to link when IFLA_PROP_LIST attribut...
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 18 Nov 2021 20:36:44 +0000 (05:36 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 18 Nov 2021 21:13:02 +0000 (06:13 +0900)
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.

src/network/networkd-link.c

index e0e7cd8cd7e0f60b28c6f4d3c7285b6ab864c760..b3b41cd8f1c2d2ac1082eeca350d1a2058753131 100644 (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)