diff options
author | Dan Williams <dcbw@redhat.com> | 2008-10-21 11:07:42 +0000 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2008-10-21 11:07:42 +0000 |
commit | 92e5e520190baedee3cc4f9a2d79c96468b9ecf5 (patch) | |
tree | 5a780002cb564a98be3c794a6d64be4249a27cfb /src | |
parent | 07541a1eb82c66c55590e3a4a38483cd01bb19eb (diff) | |
download | NetworkManager-92e5e520190baedee3cc4f9a2d79c96468b9ecf5.tar.gz |
2008-10-21 Dan Williams <dcbw@redhat.com>
* src/NetworkManager.c
- (main): keep the DHCP manager around since it's a singleton; fixes
a use-after-free exposed by r4196 since the DHCP manager singleton
variable isn't cleared when the DHCP manager object is finalized
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4199 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Diffstat (limited to 'src')
-rw-r--r-- | src/NetworkManager.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/NetworkManager.c b/src/NetworkManager.c index 948fb664d3..2770fa40c4 100644 --- a/src/NetworkManager.c +++ b/src/NetworkManager.c @@ -47,6 +47,7 @@ #include "nm-named-manager.h" #include "nm-dbus-manager.h" #include "nm-supplicant-manager.h" +#include "nm-dhcp-manager.h" #include "nm-netlink-monitor.h" #include "nm-vpn-manager.h" #include "nm-logging.h" @@ -215,8 +216,9 @@ main (int argc, char *argv[]) NMPolicy *policy = NULL; NMVPNManager *vpn_manager = NULL; NMNamedManager *named_mgr = NULL; - NMDBusManager * dbus_mgr = NULL; - NMSupplicantManager * sup_mgr = NULL; + NMDBusManager *dbus_mgr = NULL; + NMSupplicantManager *sup_mgr = NULL; + NMDHCPManager *dhcp_mgr = NULL; GOptionEntry options[] = { {"no-daemon", 0, 0, G_OPTION_ARG_NONE, &become_daemon, "Don't become a daemon", NULL}, @@ -327,6 +329,12 @@ main (int argc, char *argv[]) goto done; } + dhcp_mgr = nm_dhcp_manager_get (); + if (!dhcp_mgr) { + nm_warning ("Failed to start the DHCP manager."); + goto done; + } + /* Start our DBus service */ if (!nm_dbus_manager_start_service (dbus_mgr)) { nm_warning ("Failed to start the dbus manager."); @@ -355,6 +363,9 @@ done: if (named_mgr) g_object_unref (named_mgr); + if (dhcp_mgr) + g_object_unref (dhcp_mgr); + if (sup_mgr) g_object_unref (sup_mgr); |