From c3d14cbfa863ea3af8aaa253f1d7d3909adf1547 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Fri, 29 Mar 2019 10:40:59 +0100 Subject: cleanup: init status response - rename init_status_response_t to init_status_t - merge code for handling it - fix memory leak in status command Signed-off-by: David Oberhollenzer --- cmd/service/startstop.c | 14 ++++---------- cmd/service/status.c | 18 +++++++----------- 2 files changed, 11 insertions(+), 21 deletions(-) (limited to 'cmd') diff --git a/cmd/service/startstop.c b/cmd/service/startstop.c index ffc33de..8c30efa 100644 --- a/cmd/service/startstop.c +++ b/cmd/service/startstop.c @@ -8,17 +8,11 @@ #include #include -static void free_resp(init_status_response_t *resp) -{ - free(resp->filename); - free(resp->service_name); -} - static int cmd_startstop(int argc, char **argv, E_SERVICE_STATE filter, E_INIT_REQUEST action) { int i, fd, ret = EXIT_FAILURE; - init_status_response_t resp; + init_status_t resp; char tmppath[256]; bool found; @@ -41,12 +35,12 @@ static int cmd_startstop(int argc, char **argv, if (init_socket_recv_status(fd, &resp)) { perror("reading from initd socket"); - free_resp(&resp); + free_init_status(&resp); goto out; } if (resp.state == ESS_NONE) { - free_resp(&resp); + free_init_status(&resp); break; } @@ -68,7 +62,7 @@ static int cmd_startstop(int argc, char **argv, goto out; } - free_resp(&resp); + free_init_status(&resp); } ret = EXIT_SUCCESS; diff --git a/cmd/service/status.c b/cmd/service/status.c index abeeb15..752b0c7 100644 --- a/cmd/service/status.c +++ b/cmd/service/status.c @@ -15,17 +15,11 @@ static const struct option long_opts[] = { static const char *short_opts = "d"; -static void free_resp(init_status_response_t *resp) -{ - free(resp->filename); - free(resp->service_name); -} - static int cmd_status(int argc, char **argv) { bool is_tty, found, show_details = false; int i, fd, ret = EXIT_FAILURE; - init_status_response_t resp; + init_status_t resp; char tmppath[256]; const char *state; service_t *svc; @@ -63,12 +57,12 @@ static int cmd_status(int argc, char **argv) if (init_socket_recv_status(fd, &resp)) { perror("reading from initd socket"); - free_resp(&resp); + free_init_status(&resp); goto out; } if (resp.state == ESS_NONE) { - free_resp(&resp); + free_init_status(&resp); break; } @@ -87,8 +81,10 @@ static int cmd_status(int argc, char **argv) } } - if (!found) + if (!found) { + free_init_status(&resp); continue; + } } switch (resp.state) { @@ -150,7 +146,7 @@ static int cmd_status(int argc, char **argv) printf("[%s] %s\n", state, resp.filename); } - free_resp(&resp); + free_init_status(&resp); } ret = EXIT_SUCCESS; -- cgit v1.2.3