qga: free remaining leaking state

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Marc-André Lureau 2016-07-15 17:52:52 +02:00
parent 2aa67a9196
commit 3e3e302ff3
3 changed files with 13 additions and 0 deletions

View File

@ -71,3 +71,9 @@ GACommandState *ga_command_state_new(void)
cs->groups = NULL;
return cs;
}
void ga_command_state_free(GACommandState *cs)
{
g_slist_free_full(cs->groups, g_free);
g_free(cs);
}

View File

@ -28,6 +28,7 @@ void ga_command_state_add(GACommandState *cs,
void ga_command_state_init_all(GACommandState *cs);
void ga_command_state_cleanup_all(GACommandState *cs);
GACommandState *ga_command_state_new(void);
void ga_command_state_free(GACommandState *cs);
bool ga_logging_enabled(GAState *s);
void ga_disable_logging(GAState *s);
void ga_enable_logging(GAState *s);

View File

@ -1371,6 +1371,8 @@ int main(int argc, char **argv)
end:
if (s->command_state) {
ga_command_state_cleanup_all(s->command_state);
ga_command_state_free(s->command_state);
json_message_parser_destroy(&s->parser);
}
if (s->channel) {
ga_channel_free(s->channel);
@ -1383,6 +1385,10 @@ end:
}
config_free(config);
if (s->main_loop) {
g_main_loop_unref(s->main_loop);
}
g_free(s);
return ret;
}