]> 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)
committerSerge Hallyn <serge.hallyn@ubuntu.com>
Sun, 17 May 2015 12:30:57 +0000 (07:30 -0500)
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
src/lxc/conf.c

index 9255b3488afe6edaee2fade08252ef6f1eae941a..f0d200856a7dba289ee23ba11e31f283a1d19084 100644 (file)
@@ -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
+}