mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-06 17:18:02 +02: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) (cherry picked from commit511ef27d5e) (cherry picked from commit33309f7c9f)
This commit is contained in:
parent
647c054bce
commit
1240565e48
1 changed files with 4 additions and 3 deletions
|
|
@ -4054,13 +4054,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