mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-27 08:10:08 +01:00
device: check platform link compatibility when setting nm-owned flag
We set nm-owned to indicate whether a software device was created by NM or it was pre-existing. When checking the existence, we must verify also whether the link type is compatible with the device, otherwise it is possible to match unrelated interfaces. For example, when checking for the existence of an ovs-bridge (which is not compatible with any platform link) we could match a unrelated platform link with the same name. https://bugzilla.redhat.com/show_bug.cgi?id=1733709 (cherry picked from commit3cb4b36261) (cherry picked from commitcb20d0791a)
This commit is contained in:
parent
d69b4b3e70
commit
511ef27d5e
1 changed files with 4 additions and 3 deletions
|
|
@ -4102,13 +4102,14 @@ nm_device_create_and_realize (NMDevice *self,
|
|||
{
|
||||
nm_auto_nmpobj const NMPObject *plink_keep_alive = NULL;
|
||||
NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (self);
|
||||
const NMPlatformLink *plink = NULL;
|
||||
const NMPlatformLink *plink;
|
||||
|
||||
/* Must be set before device is realized */
|
||||
priv->nm_owned = !nm_platform_link_get_by_ifname (nm_device_get_platform (self), priv->iface);
|
||||
|
||||
plink = nm_platform_link_get_by_ifname (nm_device_get_platform (self), priv->iface);
|
||||
priv->nm_owned = !plink || !link_type_compatible (self, plink->type, NULL, NULL);
|
||||
_LOGD (LOGD_DEVICE, "create (is %snm-owned)", priv->nm_owned ? "" : "not ");
|
||||
|
||||
plink = NULL;
|
||||
/* Create any resources the device needs */
|
||||
if (NM_DEVICE_GET_CLASS (self)->create_and_realize) {
|
||||
if (!NM_DEVICE_GET_CLASS (self)->create_and_realize (self, connection, parent, &plink, error))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue