diff --git a/main.c b/main.c index 73823b5..5cdb04c 100644 --- a/main.c +++ b/main.c @@ -176,6 +176,26 @@ static int setup_config_and_args(int argc, char **argv) return 0; } +static int destroy_config(void) +{ + unsigned i; + + for (i = 0; i < service_ports.used; i++) { + struct port_s *p = array_v(&service_ports, struct port_s *)[i]; + if (p->address) { + free(p->address); + } + } + + free(libangel_config.log); + free(libangel_config.pid); + free(libangel_config.chdir); + + if (config) { + protobuf_c_message_free_unpacked(config, 0); + } + return 0; +} int get_uid_gid(uid_t *uid, gid_t *gid) { @@ -474,6 +494,8 @@ int main(int argc, char **argv) service_fini(); + destroy_config(); + libangel_cleanup(); return 0;