Skip to content
Snippets Groups Projects
Commit a8f7d7fa authored by Filip Matusiak's avatar Filip Matusiak
Browse files

fix meamleaks and cores in exit path

parent ec686a5e
Branches
Tags
1 merge request!101fix meamleaks and cores in exit path
Pipeline #46144 passed
...@@ -50,33 +50,6 @@ ...@@ -50,33 +50,6 @@
extern bool waitext; extern bool waitext;
void stop_cntlr(struct controller *c)
{
if (!c) {
warn("%s: (cntlr = NULL)\n", __func__);
exit(0);
}
ubus_unregister_event_handler(c->ubus_ctx, &c->evh);
cntlr_remove_object(c);
cmdu_ackq_free(&c->cmdu_ack_q);
uloop_done();
cntlr_config_clean(&c->cfg);
ubus_free(c->ubus_ctx);
free(c);
}
static void cntlr_terminate(struct controller *c)
{
dbg("%s: called.\n", __func__);
stop_cntlr(c);
//exit_alloctrace();
stop_logging();
//unlink(pidfile);
exit(0);
}
/* find interface by macaddress - no radio argument */ /* find interface by macaddress - no radio argument */
struct netif_iface *find_interface_by_mac_nor(struct controller *c, struct netif_iface *find_interface_by_mac_nor(struct controller *c,
uint8_t *hwaddr) uint8_t *hwaddr)
...@@ -1828,18 +1801,6 @@ static void cntlr_signal_periodic_run(struct uloop_timeout *t) ...@@ -1828,18 +1801,6 @@ static void cntlr_signal_periodic_run(struct uloop_timeout *t)
sigpending(&waiting_mask); sigpending(&waiting_mask);
if (sigismember(&waiting_mask, SIGINT)) {
dbg("|%s:%d| Received SIGINT, terminating\n", __func__, __LINE__);
signal(SIGINT, SIG_IGN);
cntlr_terminate(c);
}
if (sigismember(&waiting_mask, SIGTERM)) {
dbg("|%s:%d| Received SIGSTP, terminating\n", __func__, __LINE__);
signal(SIGTERM, SIG_IGN);
cntlr_terminate(c);
}
if (sigismember(&waiting_mask, SIGHUP)) { if (sigismember(&waiting_mask, SIGHUP)) {
dbg("|%s:%d| Received SIGHUP, reload config\n", __func__, __LINE__); dbg("|%s:%d| Received SIGHUP, reload config\n", __func__, __LINE__);
signal(SIGHUP, SIG_IGN); signal(SIGHUP, SIG_IGN);
...@@ -2408,8 +2369,6 @@ int start_controller(void) ...@@ -2408,8 +2369,6 @@ int start_controller(void)
sigset_t base_mask; sigset_t base_mask;
sigemptyset(&base_mask); sigemptyset(&base_mask);
sigaddset(&base_mask, SIGINT);
sigaddset(&base_mask, SIGTERM);
sigaddset(&base_mask, SIGHUP); sigaddset(&base_mask, SIGHUP);
sigprocmask(SIG_SETMASK, &base_mask, NULL); sigprocmask(SIG_SETMASK, &base_mask, NULL);
...@@ -2482,13 +2441,17 @@ int start_controller(void) ...@@ -2482,13 +2441,17 @@ int start_controller(void)
controller_subscribe_for_cmdus(c); controller_subscribe_for_cmdus(c);
uloop_run(); uloop_run();
out_exit: out_exit:
/* ubus_unregister_event_handler(ctx, ev); */ ubus_unregister_event_handler(ctx, &c->evh);
/* cntlr_remove_object(ctx); */ cntlr_remove_object(c);
cmdu_ackq_free(&c->cmdu_ack_q);
cntlr_config_clean(&c->cfg);
ubus_free(c->ubus_ctx);
uloop_done(); uloop_done();
cntlr_terminate(c); free(c);
stop_logging();
return 0; return 0;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment