Comment 7 for bug 1933402

Revision history for this message
dann frazier (dannf) wrote : Re: [Bug 1933402] Re: net card set VF and altname display blurred character

On Mon, Jun 28, 2021 at 10:28:00PM -0000, Dan Streetman wrote:
> systemd doesn't use iproute2 tooling to set the altnames, it sets them
> directly with netlink.

You're right. The problem is that it does so w/ possibly uninitialized
memory. I added the following patch to demonstrate:

--- systemd-245.4.orig/src/udev/net/link-config.c
+++ systemd-245.4/src/udev/net/link-config.c
@@ -530,6 +530,7 @@ int link_config_apply(link_config_ctx *c
                                 assert_not_reached("invalid policy");
                         }
                         if (!isempty(n)) {
+ log_debug("DANNF: adding altname %s", n);
                                 r = strv_extend(&altnames, n);
                                 if (r < 0)
                                         return log_oom();

Which logs the following:
DANNF: adding altname ��
DANNF: adding altname ��'���
DANNF: adding altname ��'���
DANNF: adding altname enp7s0v0

Which is because we never enter the preceding switch statement.

> what's the output from udevadm info for one of the affected interfaces?
> e.g.
>
> $ udevadm info /sys/class/net/eno1v0

Here's the output from the interface with which I'm reproducing:

$ sudo udevadm info /sys/class/net/enp7s0v0
P: /devices/pci0000:00/0000:00:0c.0/0000:04:00.0/0000:05:01.0/0000:07:00.1/net/enp7s0v0
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:0c.0/0000:04:00.0/0000:05:01.0/0000:07:00.1/net/enp7s0v0
E: INTERFACE=enp7s0v0
E: IFINDEX=19
E: SUBSYSTEM=net
E: USEC_INITIALIZED=59449992522
E: ID_MM_CANDIDATE=1
E: ID_NET_NAMING_SCHEME=v245
E: ID_NET_NAME_PATH=enp7s0v0
E: ID_BUS=pci
E: ID_VENDOR_ID=0x19e5
E: ID_MODEL_ID=0x375e
E: ID_PCI_CLASS_FROM_DATABASE=Network controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
E: ID_VENDOR_FROM_DATABASE=Huawei Technologies Co., Ltd.
E: ID_MODEL_FROM_DATABASE=Hi1822 Family Virtual Function
E: ID_PATH=pci-0000:07:00.1
E: ID_PATH_TAG=pci-0000_07_00_1
E: ID_NET_DRIVER=hinic
E: ID_NET_LINK_FILE=/usr/lib/systemd/network/99-default.link
E: ID_NET_NAME=enp7s0v0
E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/enp7s0v0 /sys/subsystem/net/devices/enp7s0v0
E: TAGS=:systemd: