---
 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;
 }
-- 
1.8.4

Reply via email to