lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 24 Aug 2020 14:38:26 +0000 From: Mira Ressel <aranea@...ah.de> To: "David S. Miller" <davem@...emloft.net>, Jakub Kicinski <kuba@...nel.org>, netdev@...r.kernel.org (open list:NETWORKING DRIVERS), linux-kernel@...r.kernel.org (open list) Cc: Mira Ressel <aranea@...ah.de> Subject: [PATCH 1/2] veth: Initialize dev->perm_addr Set the perm_addr of veth devices to whatever MAC has been assigned to the device. Otherwise, it remains all zero, with the consequence that ipv6_generate_stable_address() (which is used if the sysctl net.ipv6.conf.DEV.addr_gen_mode is set to 2 or 3) assigns every veth interface on a host the same link-local address. The new behaviour matches that of several other virtual interface types (such as gre), and as far as I can tell, perm_addr isn't used by any other code sites that are relevant to veth. Signed-off-by: Mira Ressel <aranea@...ah.de> --- drivers/net/veth.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/veth.c b/drivers/net/veth.c index e56cd562a664..af1a7cda6205 100644 --- a/drivers/net/veth.c +++ b/drivers/net/veth.c @@ -1342,6 +1342,8 @@ static int veth_newlink(struct net *src_net, struct net_device *dev, if (!ifmp || !tbp[IFLA_ADDRESS]) eth_hw_addr_random(peer); + memcpy(peer->perm_addr, peer->dev_addr, peer->addr_len); + if (ifmp && (dev->ifindex != 0)) peer->ifindex = ifmp->ifi_index; @@ -1370,6 +1372,8 @@ static int veth_newlink(struct net *src_net, struct net_device *dev, if (tb[IFLA_ADDRESS] == NULL) eth_hw_addr_random(dev); + memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len); + if (tb[IFLA_IFNAME]) nla_strlcpy(dev->name, tb[IFLA_IFNAME], IFNAMSIZ); else -- 2.25.4
Powered by blists - more mailing lists