From: Serge Hallyn Date: Sun, 17 May 2015 12:30:57 +0000 (-0500) Subject: coverity: free 'result' in error case. X-Git-Tag: lxc-2.0.0.beta1~284 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a73077478d731b9e9f1832244e1432a9283b7db0;p=thirdparty%2Flxc.git coverity: free 'result' in error case. Signed-off-by: Serge Hallyn --- diff --git a/src/lxc/conf.c b/src/lxc/conf.c index 9255b3488..f0d200856 100644 --- a/src/lxc/conf.c +++ b/src/lxc/conf.c @@ -4564,6 +4564,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 @@ -4588,6 +4599,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; @@ -4605,4 +4617,4 @@ struct lxc_list *sort_cgroup_settings(struct lxc_list* cgroup_settings) } return result; -} \ No newline at end of file +}