--- main.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/main.c b/main.c index 86acfb7..58622f8 100644 --- a/main.c +++ b/main.c @@ -142,6 +142,7 @@ static struct globals *alfred_init(int argc, char *argv[]) int main(int argc, char *argv[]) { struct globals *globals; + int ret;
globals = alfred_init(argc, argv);
@@ -150,15 +151,21 @@ int main(int argc, char *argv[])
switch (globals->clientmode) { case CLIENT_NONE: - return alfred_server(globals); + ret = alfred_server(globals); break; case CLIENT_REQUEST_DATA: - return alfred_client_request_data(globals); + ret = alfred_client_request_data(globals); break; case CLIENT_SET_DATA: - return alfred_client_set_data(globals); + ret = alfred_client_set_data(globals); break; + default: + ret = 0; }
- return 0; + free(globals->interface); + free(globals->mesh_iface); + free(globals); + + return ret; }