]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
coverity: free 'result' in error case.
authorSerge Hallyn <serge.hallyn@ubuntu.com>
Sun, 17 May 2015 12:30:57 +0000 (07:30 -0500)
committerStéphane Graber <stgraber@ubuntu.com>
Wed, 1 Jul 2015 16:06:54 +0000 (12:06 -0400)
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
src/lxc/conf.c

index aaee1fe81218a2d73b41f10443f9ad1ed1a24527..6d1df467736b5e183e23236ded112736a20cf780 100644 (file)
@@ -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
+}