diff options
author | Jun Gu <jun.gu@easystack.cn> | 2024-04-19 14:14:25 +0800 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2024-04-22 17:34:02 -0700 |
commit | 2540088b836f9e208f7f722a67f9b168737036e8 (patch) | |
tree | c1dbb0abd92cd9cf4d7d5ef62cd2e9b84310454a /net/openvswitch | |
parent | 2557e2ec94fe32d743b30d8a4f6acbaefcba0621 (diff) |
net: openvswitch: Check vport netdev name
Ensure that the provided netdev name is not one of its aliases to
prevent unnecessary creation and destruction of the vport by
ovs-vswitchd.
Signed-off-by: Jun Gu <jun.gu@easystack.cn>
Acked-by: Eelco Chaudron <echaudro@redhat.com>
Link: https://lore.kernel.org/r/20240419061425.132723-1-jun.gu@easystack.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/openvswitch')
-rw-r--r-- | net/openvswitch/vport-netdev.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/openvswitch/vport-netdev.c b/net/openvswitch/vport-netdev.c index 903537a5da22..618edc346c0f 100644 --- a/net/openvswitch/vport-netdev.c +++ b/net/openvswitch/vport-netdev.c @@ -78,7 +78,10 @@ struct vport *ovs_netdev_link(struct vport *vport, const char *name) int err; vport->dev = dev_get_by_name(ovs_dp_get_net(vport->dp), name); - if (!vport->dev) { + /* Ensure that the device exists and that the provided + * name is not one of its aliases. + */ + if (!vport->dev || strcmp(name, ovs_vport_name(vport))) { err = -ENODEV; goto error_free_vport; } |