network: Prevent a use after free crash when removing virtual devices
When a virtual device is removed and the instance gets finalized we're not disconnecting from the real NMDevice's notify signal and thus end up crashing when the signal fires afterwards. Avoid that by using g_signal_connect_object() so that when we're finalized the disconnection happens automatically. https://bugzilla.gnome.org/show_bug.cgi?id=749972
This commit is contained in:
parent
3b283b78b0
commit
c42f7d2d91
3 changed files with 6 additions and 6 deletions
|
@ -133,8 +133,8 @@ net_device_bond_device_set (NetVirtualDevice *virtual_device,
|
|||
{
|
||||
NetDeviceBond *device_bond = NET_DEVICE_BOND (virtual_device);
|
||||
|
||||
g_signal_connect (nm_device, "notify::slaves",
|
||||
G_CALLBACK (nm_device_slaves_changed), device_bond);
|
||||
g_signal_connect_object (nm_device, "notify::slaves",
|
||||
G_CALLBACK (nm_device_slaves_changed), device_bond, 0);
|
||||
nm_device_slaves_changed (G_OBJECT (nm_device), NULL, device_bond);
|
||||
}
|
||||
|
||||
|
|
|
@ -133,8 +133,8 @@ net_device_bridge_device_set (NetVirtualDevice *virtual_device,
|
|||
{
|
||||
NetDeviceBridge *device_bridge = NET_DEVICE_BRIDGE (virtual_device);
|
||||
|
||||
g_signal_connect (nm_device, "notify::slaves",
|
||||
G_CALLBACK (nm_device_slaves_changed), device_bridge);
|
||||
g_signal_connect_object (nm_device, "notify::slaves",
|
||||
G_CALLBACK (nm_device_slaves_changed), device_bridge, 0);
|
||||
nm_device_slaves_changed (G_OBJECT (nm_device), NULL, device_bridge);
|
||||
}
|
||||
|
||||
|
|
|
@ -133,8 +133,8 @@ net_device_team_device_set (NetVirtualDevice *virtual_device,
|
|||
{
|
||||
NetDeviceTeam *device_team = NET_DEVICE_TEAM (virtual_device);
|
||||
|
||||
g_signal_connect (nm_device, "notify::slaves",
|
||||
G_CALLBACK (nm_device_slaves_changed), device_team);
|
||||
g_signal_connect_object (nm_device, "notify::slaves",
|
||||
G_CALLBACK (nm_device_slaves_changed), device_team, 0);
|
||||
nm_device_slaves_changed (G_OBJECT (nm_device), NULL, device_team);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue