diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2017-03-17 23:30:43 +0100 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2017-03-21 13:25:36 +0100 |
commit | 2e0c3d1dacfa06fad0062d272fc77ecc34ba4576 (patch) | |
tree | bbee6731502277896fa35bbc73d718741a44b0de | |
parent | 714504faf27c74a9b26e0f1d4f8bdaff7bb24181 (diff) | |
download | NetworkManager-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.c | 5 |
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); |