summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2017-03-17 23:30:43 +0100
committerBeniamino Galvani <bgalvani@redhat.com>2017-03-21 13:25:36 +0100
commit2e0c3d1dacfa06fad0062d272fc77ecc34ba4576 (patch)
treebbee6731502277896fa35bbc73d718741a44b0de
parent714504faf27c74a9b26e0f1d4f8bdaff7bb24181 (diff)
downloadNetworkManager-2e0c3d1dacfa06fad0062d272fc77ecc34ba4576.tar.gz
manager: ensure proper disposal of unrealized devices
When remove_device() is called on an already unrealized device, we should release it from master if necessary and clear its IP configurations to avoid leaks. https://bugzilla.redhat.com/show_bug.cgi?id=1433303
-rw-r--r--src/nm-manager.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/nm-manager.c b/src/nm-manager.c
index 1003ebbb99..0a9522f767 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -1070,7 +1070,12 @@ remove_device (NMManager *self,
g_signal_emit (self, signals[DEVICE_REMOVED], 0, device);
_notify (self, PROP_DEVICES);
+ } else {
+ /* unrealize() does not release a slave device from master and
+ * clear IP configurations, do it here */
+ nm_device_removed (device, TRUE);
}
+
g_signal_emit (self, signals[INTERNAL_DEVICE_REMOVED], 0, device);
_notify (self, PROP_ALL_DEVICES);