diff --git a/ChangeLog b/ChangeLog index ba7fef6ba9..184805f80b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-12-01 Robert Love + + * src/NetworkManagerSystem.c: If iface_to_rtnl_link() returns NULL, the + interface is already gone, so don't call rtnl_link_change() to down + it (which will segfault, anyhow). + 2005-11-22 Robert Love * src/backends/NetworkManagerSuSE.c: Don't fall back to DHCP if the diff --git a/src/NetworkManagerSystem.c b/src/NetworkManagerSystem.c index 678be20e82..c26cf51fcd 100644 --- a/src/NetworkManagerSystem.c +++ b/src/NetworkManagerSystem.c @@ -391,9 +391,14 @@ gboolean nm_system_device_set_up_down_with_iface (NMDevice *dev, const char *ifa if (!(request = rtnl_link_alloc ())) goto out; - up ? rtnl_link_set_flags (request, IFF_UP) : rtnl_link_unset_flags (request, IFF_UP); + if (up) + rtnl_link_set_flags (request, IFF_UP); + else + rtnl_link_unset_flags (request, IFF_UP); + old = iface_to_rtnl_link (iface, nlh); - rtnl_link_change (nlh, old, request, 0); + if (old) + rtnl_link_change (nlh, old, request, 0); rtnl_link_put (old); rtnl_link_put (request);