aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Kourt <tim.a.kourt@linux.intel.com>2020-04-08 18:44:16 -0700
committerDenis Kenzior <denkenz@gmail.com>2020-04-08 16:18:05 -0500
commit19a5250b34360c142c6c02c6ec8d288da9ccf70a (patch)
tree2051c2ce98da85c8536009b1f2de2f5cd1681fb2
parentf92ce9441efb1f8fd13d8aba57ba81421e824b0c (diff)
downloadiwd-19a5250b34360c142c6c02c6ec8d288da9ccf70a.tar.gz
main: Fix failure cleanup sequence
-rw-r--r--src/main.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/src/main.c b/src/main.c
index acd721310..b5ccc63be 100644
--- a/src/main.c
+++ b/src/main.c
@@ -476,12 +476,12 @@ int main(int argc, char *argv[])
exit_status = EXIT_FAILURE;
if (!storage_create_dirs())
- goto fail_dbus;
+ goto failed_dirs;
genl = l_genl_new();
if (!genl) {
l_error("Failed to open generic netlink socket");
- goto fail_genl;
+ goto failed_genl;
}
if (getenv("IWD_GENL_DEBUG"))
@@ -490,7 +490,7 @@ int main(int argc, char *argv[])
rtnl = l_netlink_new(NETLINK_ROUTE);
if (!rtnl) {
l_error("Failed to open route netlink socket");
- goto fail_rtnl;
+ goto failed_rtnl;
}
if (getenv("IWD_RTNL_DEBUG"))
@@ -499,7 +499,7 @@ int main(int argc, char *argv[])
dbus = l_dbus_new_default(L_DBUS_SYSTEM_BUS);
if (!dbus) {
l_error("Failed to initialize D-Bus");
- goto fail_dbus;
+ goto failed_dbus;
}
if (enable_dbus_debug)
@@ -510,18 +510,24 @@ int main(int argc, char *argv[])
dbus_init(dbus);
exit_status = l_main_run_with_signal(signal_handler, NULL);
+
plugin_exit();
iwd_modules_exit();
dbus_exit();
l_dbus_destroy(dbus);
- storage_cleanup_dirs();
-fail_dbus:
- l_genl_unref(genl);
-fail_rtnl:
+failed_dbus:
+
l_netlink_destroy(rtnl);
-fail_genl:
+failed_rtnl:
+
+ l_genl_unref(genl);
+failed_genl:
+
+ storage_cleanup_dirs();
+failed_dirs:
+
l_settings_free(iwd_config);
l_timeout_remove(timeout);