From: Serge Hallyn Date: Sun, 17 May 2015 12:30:57 +0000 (-0500) Subject: coverity: free 'result' in error case. X-Git-Tag: lxc-1.0.8~61 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f8b444f16754a63ccb7fcfe0366f011ff66fa468;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 b6e4e49be..c69cd65c1 100644 --- a/src/lxc/conf.c +++ b/src/lxc/conf.c @@ -4830,6 +4830,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 @@ -4854,6 +4865,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;