From d6723beecd2170536c75eb8ce8429460d30fd164 Mon Sep 17 00:00:00 2001 From: Serge Hallyn Date: Sun, 17 May 2015 07:30:57 -0500 Subject: [PATCH] coverity: free 'result' in error case. Signed-off-by: Serge Hallyn --- src/lxc/conf.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/lxc/conf.c b/src/lxc/conf.c index aaee1fe81..6d1df4677 100644 --- a/src/lxc/conf.c +++ b/src/lxc/conf.c @@ -4558,6 +4558,17 @@ void suggest_default_idmap(void) free(uname); } +static void free_cgroup_settings(struct lxc_list *result) +{ + struct lxc_list *iterator, *next; + + lxc_list_for_each_safe(iterator, result, next) { + lxc_list_del(iterator); + free(iterator); + } + free(result); +} + /* * Return the list of cgroup_settings sorted according to the following rules * 1. Put memory.limit_in_bytes before memory.memsw.limit_in_bytes @@ -4582,6 +4593,7 @@ struct lxc_list *sort_cgroup_settings(struct lxc_list* cgroup_settings) item = malloc(sizeof(*item)); if (!item) { ERROR("failed to allocate memory to sort cgroup settings"); + free_cgroup_settings(result); return NULL; } item->elem = it->elem; @@ -4599,4 +4611,4 @@ struct lxc_list *sort_cgroup_settings(struct lxc_list* cgroup_settings) } return result; -} \ No newline at end of file +} -- 2.47.2