static int do_setup_cgroup_limits(struct cgfs_data *d,
struct lxc_list *cgroup_settings, bool do_devices)
{
- struct lxc_list *iterator;
+ struct lxc_list *iterator, *sorted_cgroup_settings, *next;
struct lxc_cgroup *cg;
- struct lxc_list *sorted_cgroup_settings;
int ret = -1;
if (lxc_list_empty(cgroup_settings))
ret = 0;
INFO("cgroup has been setup");
out:
- lxc_list_for_each(iterator, sorted_cgroup_settings) {
+ lxc_list_for_each_safe(iterator, sorted_cgroup_settings, next) {
lxc_list_del(iterator);
free(iterator);
}
+ free(sorted_cgroup_settings);
return ret;
}
static bool cgm_setup_limits(void *hdata, struct lxc_list *cgroup_settings, bool do_devices)
{
struct cgm_data *d = hdata;
- struct lxc_list *iterator;
+ struct lxc_list *iterator, *sorted_cgroup_settings, *next;
struct lxc_cgroup *cg;
bool ret = false;
- struct lxc_list *sorted_cgroup_settings;
if (lxc_list_empty(cgroup_settings))
return true;
ret = true;
INFO("cgroup limits have been setup");
out:
- lxc_list_for_each(iterator, sorted_cgroup_settings) {
+ lxc_list_for_each_safe(iterator, sorted_cgroup_settings, next) {
lxc_list_del(iterator);
free(iterator);
}
+ free(sorted_cgroup_settings);
cgm_dbus_disconnect();
return ret;
}